HTTP
Clase 17 de 31 • Curso de Fundamentos de Node.js
Resumen
¿Cómo crear un servidor HTTP básico con Node.js?
Node.js es una tecnología poderosa que permite construir aplicaciones del lado del servidor de manera eficiente. Uno de los módulos más fundamentales que ofrece Node.js es el módulo HTTP, que permite tanto crear servidores HTTP como conectarse a servidores externos directamente desde Node.
Para comenzar a utilizar este módulo, primero es necesario requerirlo en tu archivo JavaScript usando la siguiente línea de código:
const http = require('http');
¿Cómo se construye un servidor básico?
Una vez requerido el módulo, crearemos un servidor utilizando el método http.createServer()
. Este método recibe una función de callback con los parámetros req
y res
, que representan la solicitud y la respuesta, respectivamente.
const server = http.createServer((req, res) => {
console.log('Nueva petición entrante');
res.end('Hola desde el servidor HTTP de Node.js');
});
¿En qué puerto debe escuchar nuestro servidor?
Para que el servidor funcione, necesita escuchar en un puerto específico. Los puertos más comunes para servidores HTTP son el 3000, 3001, y similares. Sin embargo, para mantener seguridad, no se recomienda usar los puertos predeterminados a menos que se ejecute el servidor con privilegios de administrador. Aquí hay un ejemplo de cómo hacer que el servidor escuche en el puerto 3000:
server.listen(3000, () => {
console.log('Servidor escuchando en el puerto 3000');
});
¿Cómo manejamos las peticiones entrantes?
Cuando una petición HTTP llega al servidor, podemos inspeccionar varios elementos de la solicitud. Un aspecto básico es registrar la URL solicitada:
console.log(`URL solicitada: ${req.url}`);
¿De qué forma respondemos a las solicitudes?
Para enviar respuestas, se utiliza el objeto res
. Podemos enviar datos simplemente escribiendo un mensaje:
res.write('Hola, estás usando Node.js HTTP');
res.end();
Finalmente, se puede configurar el código de estado HTTP y las cabeceras de respuesta para proporcionar más información a los clientes:
res.statusCode = 201; // Estado para recurso creado
res.setHeader('Content-Type', 'text/plain');
res.end('Hola, respuesta con código de estado y tipo de contenido');
¿Cómo implementamos un enrutador básico?
El servidor puede servir diferentes rutas utilizando una estructura de control como switch
:
const server = http.createServer((req, res) => {
switch (req.url) {
case '/hola':
res.write('¡Hola, bienvenido!');
break;
default:
res.statusCode = 404;
res.write('Error 404: Ruta no encontrada');
break;
}
res.end();
});
¿Cómo mejoramos la estructura del servidor?
Refactorizar funciones y usar controladores separados para las diferentes rutas puede hacer el código más legible y mantenible. Además, Node.js ofrece herramientas adicionales como Express.js para desarrollar aplicaciones con arquitectura de rutas complejas de manera más fluida.
Esta es una base excelente para adentrarse en el mundo del desarrollo de servidores Node.js. Si te interesa profundizar en esta temática, considera explorar cursos específicos que aborden tópicos avanzados como la creación de APIs REST con Express.js. ¡Sigue siempre con el impulso de aprender, experimentar y mejorar tus habilidades en Node.js!