0% found this document useful (0 votes)
7 views3 pages

20-21 Node - Js - Scharakteryzowanie Modułu HTTP W Node

Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
7 views3 pages

20-21 Node - Js - Scharakteryzowanie Modułu HTTP W Node

Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 3

Temat: Scharakteryzowanie modułu http w Node.

js
Moduł http w Node.js jest kluczowym elementem umożliwiającym tworzenie serwerów
HTTP oraz obsługę zapytań i odpowiedzi w aplikacjach działających na serwerze. Dzięki
temu modułowi można łatwo tworzyć serwery WWW, obsługiwać różne typy zapytań (np.
GET, POST) oraz zarządzać komunikacją między klientem a serwerem. Poniżej znajduje się
szczegółowy opis funkcji i możliwości tego modułu:

1. Tworzenie Serwera HTTP

Moduł http pozwala tworzyć serwer HTTP za pomocą metody http.createServer().


Serwer ten nasłuchuje na określonym porcie i reaguje na żądania wysyłane przez klientów
(np. przeglądarki internetowe).

Przykład prostego serwera HTTP:

const http = require('http');

const server = http.createServer((req, res) => {


res.statusCode = 200;
res.setHeader('Content-Type', 'text/plain');
res.end('Hello, world!');
});

server.listen(3000, () => {
console.log('Server running at http://localhost:3000/');
});

W powyższym przykładzie serwer nasłuchuje na porcie 3000 i zwraca tekst "Hello, world!"
jako odpowiedź na każde żądanie.

2. Obsługa Żądań i Odpowiedzi

Serwer utworzony przez http.createServer() przekazuje do funkcji obsługującej dwa


obiekty: req (żądanie) i res (odpowiedź).

 req (Request) – obiekt zawierający szczegóły żądania HTTP wysłanego przez klienta,
takie jak URL, metoda (GET, POST itp.), nagłówki, oraz – w przypadku żądań POST
– dane przesyłane w treści żądania.
 res (Response) – obiekt służący do konstruowania odpowiedzi, którą serwer zwróci
do klienta. Pozwala ustawić status odpowiedzi, nagłówki oraz jej treść.

Przykład sprawdzania metody żądania i ścieżki URL:

const http = require('http');

const server = http.createServer((req, res) => {


if (req.method === 'GET' && req.url === '/') {
res.writeHead(200, { 'Content-Type': 'text/plain' });
res.end('Hello, GET request!');
} else if (req.method === 'POST' && req.url === '/data') {
res.writeHead(200, { 'Content-Type': 'application/json' });
res.end(JSON.stringify({ message: 'Hello, POST request!' }));
} else {
res.writeHead(404, { 'Content-Type': 'text/plain' });
res.end('Not Found');
}
});

server.listen(3000, () => {
console.log('Server running at http://localhost:3000/');
});

W przykładzie serwer odpowiada na różne ścieżki i metody, co pozwala tworzyć bardziej


skomplikowane aplikacje serwerowe.

3. Nagłówki i Statusy Odpowiedzi

Obiekt res pozwala ustawić nagłówki odpowiedzi (res.setHeader()) oraz status HTTP, np.
200 OK, 404 Not Found, 500 Internal Server Error . Można to zrobić zarówno przez
res.writeHead(statusCode, headers) , jak i poprzez osobne metody.

Przykład ustawienia statusu i nagłówka:

res.writeHead(200, { 'Content-Type': 'application/json' });

4. Strumieniowe Przesyłanie Danych

Moduł http obsługuje również strumieniowanie odpowiedzi i żądań, co jest przydatne przy
pracy z dużymi plikami lub danymi. Można np. przesyłać pliki do klienta, nie wczytując ich
w całości do pamięci serwera, co jest efektywne dla zasobów systemowych.

Przykład strumieniowego przesyłania pliku:

const fs = require('fs');
const http = require('http');

const server = http.createServer((req, res) => {


if (req.url === '/file') {
const readStream = fs.createReadStream('file.txt');
res.writeHead(200, { 'Content-Type': 'text/plain' });
readStream.pipe(res);
} else {
res.writeHead(404, { 'Content-Type': 'text/plain' });
res.end('Not Found');
}
});

server.listen(3000, () => {
console.log('Server running at http://localhost:3000/');
});

W tym przykładzie plik file.txt jest przesyłany strumieniowo do klienta, co pozwala na


efektywne zarządzanie zasobami serwera.
5. Metody i Właściwości w Modułach HTTP

Kilka przydatnych metod i właściwości dostępnych w module http:

 http.METHODS – lista metod HTTP obsługiwanych przez Node.js.


 http.STATUS_CODES – obiekt mapujący kody statusu na ich opisy (np. 200 na "OK",
404 na "Not Found").
 req.url – URL żądania.
 req.method – metoda żądania HTTP.
 req.headers – nagłówki żądania w formie obiektu.
 res.setHeader(name, value) – ustawia nagłówek odpowiedzi.
 res.write(data) – pisze dane do odpowiedzi (używane do wysyłania danych w
czasie rzeczywistym).
 res.end(data) – kończy odpowiedź i opcjonalnie wysyła dodatkowe dane.

6. Tworzenie Klienta HTTP

Moduł http pozwala nie tylko tworzyć serwery, ale także realizować zapytania HTTP jako
klient, korzystając z http.request() lub uproszczonej funkcji http.get().

Przykład zapytania GET:

const http = require('http');

http.get('http://example.com', (res) => {


let data = '';

res.on('data', (chunk) => {


data += chunk;
});

res.on('end', () => {
console.log(data);
});
}).on('error', (err) => {
console.error('Error:', err.message);
});

Podsumowanie

Moduł http w Node.js jest niezwykle wszechstronny i umożliwia:

 Tworzenie serwerów obsługujących żądania HTTP,


 Przetwarzanie zapytań i odpowiedzi na poziomie żądań i strumieni,
 Realizowanie zapytań HTTP jako klient.

Jego podstawowa funkcjonalność sprawia, że jest fundamentem w budowie aplikacji


sieciowych i interfejsów API w Node.js, zwłaszcza w aplikacjach o dużej skalowalności i
responsywności.

You might also like