En aquest tema, aprendrem a crear un servidor HTTP simple utilitzant Node.js. Aquest és un dels primers passos per desenvolupar aplicacions web amb Node.js.
Objectius
- Entendre com funciona el mòdul
http
de Node.js. - Aprendre a crear un servidor HTTP bàsic.
- Gestionar peticions i respostes HTTP.
- Introducció al Mòdul
http
http
Node.js inclou un mòdul integrat anomenat http
que permet crear servidors web i gestionar peticions HTTP. Aquest mòdul proporciona una API senzilla per treballar amb el protocol HTTP.
Importar el Mòdul http
Per utilitzar el mòdul http
, primer l'hem d'importar al nostre fitxer de codi:
- Crear un Servidor HTTP
Passos per Crear un Servidor HTTP
- Crear el servidor: Utilitzem el mètode
http.createServer()
per crear un servidor. - Definir la funció de gestió de peticions: Aquesta funció s'executa cada vegada que el servidor rep una petició.
- Escoltar en un port específic: Utilitzem el mètode
server.listen()
per especificar el port en el qual el servidor escoltarà les peticions.
Exemple de Codi
A continuació, es mostra un exemple de codi per crear un servidor HTTP simple:
const http = require('http'); // Crear el servidor const server = http.createServer((req, res) => { // Establir l'estatus de la resposta i el tipus de contingut res.statusCode = 200; res.setHeader('Content-Type', 'text/plain'); // Enviar la resposta res.end('Hola, món!\n'); }); // Escoltar en el port 3000 const PORT = 3000; server.listen(PORT, () => { console.log(`El servidor està escoltant en el port ${PORT}`); });
Explicació del Codi
- Importar el mòdul
http
:const http = require('http');
- Crear el servidor:
http.createServer((req, res) => { ... })
req
: Objecte que representa la petició HTTP.res
: Objecte que representa la resposta HTTP.
- Establir l'estatus de la resposta:
res.statusCode = 200;
- Establir el tipus de contingut:
res.setHeader('Content-Type', 'text/plain');
- Enviar la resposta:
res.end('Hola, món!\n');
- Escoltar en el port 3000:
server.listen(PORT, () => { ... })
- Executar el Servidor
Per executar el servidor, guarda el codi en un fitxer anomenat server.js
i executa el següent comandament en la terminal:
Si tot funciona correctament, veuràs el següent missatge en la terminal:
Ara, pots obrir el teu navegador web i anar a http://localhost:3000
. Hauries de veure el missatge "Hola, món!".
Exercici Pràctic
Exercici 1: Modificar la Resposta del Servidor
Modifica el codi del servidor per enviar una resposta HTML en lloc de text pla. La resposta hauria de contenir un títol i un paràgraf.
Solució
const http = require('http'); // Crear el servidor const server = http.createServer((req, res) => { // Establir l'estatus de la resposta i el tipus de contingut res.statusCode = 200; res.setHeader('Content-Type', 'text/html'); // Enviar la resposta res.end('<h1>Hola, món!</h1><p>Aquesta és una resposta HTML.</p>'); }); // Escoltar en el port 3000 const PORT = 3000; server.listen(PORT, () => { console.log(`El servidor està escoltant en el port ${PORT}`); });
Conclusió
En aquest tema, hem après a crear un servidor HTTP simple utilitzant Node.js. Hem vist com utilitzar el mòdul http
per gestionar peticions i respostes, i hem creat un servidor que escolta en un port específic. Aquest és el primer pas per desenvolupar aplicacions web amb Node.js. En els següents temes, explorarem com gestionar peticions i respostes de manera més detallada i com servir fitxers estàtics.
Curs de Node.js
Mòdul 1: Introducció a Node.js
Mòdul 2: Conceptes Bàsics
Mòdul 3: Sistema de Fitxers i I/O
Mòdul 4: HTTP i Servidors Web
Mòdul 5: NPM i Gestió de Paquets
Mòdul 6: Framework Express.js
- Introducció a Express.js
- Configuració d'una Aplicació Express
- Middleware
- Routing en Express
- Gestió d'Errors
Mòdul 7: Bases de Dades i ORMs
- Introducció a les Bases de Dades
- Utilitzar MongoDB amb Mongoose
- Utilitzar Bases de Dades SQL amb Sequelize
- Operacions CRUD
Mòdul 8: Autenticació i Autorització
Mòdul 9: Proves i Depuració
- Introducció a les Proves
- Proves Unitàries amb Mocha i Chai
- Proves d'Integració
- Depuració d'Aplicacions Node.js
Mòdul 10: Temes Avançats
Mòdul 11: Desplegament i DevOps
- Variables d'Entorn
- Utilitzar PM2 per a la Gestió de Processos
- Desplegar a Heroku
- Integració i Desplegament Continu