Node.js
Node.js es un entorno de ejecución para JavaScript que permite construir aplicaciones del lado del servidor. Es rápido, escalable y ampliamente utilizado para crear APIs y manejar tareas como la autenticación o el manejo de bases de datos.

¿Por qué usarlo?
En un proyecto MERN, Node.js es fundamental para el backend. Permite ejecutar JavaScript en el servidor, conectar la base de datos MongoDB con el frontend React, y manejar la lógica del servidor.
Recursos para aprender Node.js
- Documentación oficial de Node.js
- Tutorial interactivo: Aprende Node.js desde cero
- Curso de Node.js y Express en freeCodeCamp (YouTube)
Conceptos clave
- Configuración de un entorno básico.
- Uso de módulos (
http
,fs
, etc.). - Configuración de variables de entorno.
- Integración con Express.js.
Retos prácticos
Reto 1: Configurar un servidor básico
- Crea un servidor en Node.js utilizando el módulo
http
que responda con "¡Bienvenido a mi servidor Node.js!" al acceder a la ruta raíz (/
). - Guarda el archivo como
servidor.js
y ejecútalo connode servidor.js
.
Pista: Usa el siguiente código como referencia:
const http = require('http');
const servidor = http.createServer((req, res) => {
res.writeHead(200, { 'Content-Type': 'text/plain' });
res.end('¡Bienvenido a mi servidor Node.js!');
});
servidor.listen(3000, () => {
console.log('Servidor ejecutándose en http://localhost:3000');
});
Reto 2: Manejo de archivos con Node.js
- Escribe un script que cree un archivo llamado
log.txt
y guarde el mensaje "El servidor se ejecutó correctamente" cada vez que el servidor se inicie. - Si el archivo ya existe, el script debe añadir la nueva entrada al final sin sobrescribir el contenido.
Pista: Usa el módulo fs
y la función appendFile
.
Reto 3: Leer datos desde un archivo
Crea un archivo llamado datos.json
que contenga un objeto con información básica de productos:
[
{ "id": 1, "nombre": "Producto A", "precio": 10.99 },
{ "id": 2, "nombre": "Producto B", "precio": 15.49 },
{ "id": 3, "nombre": "Producto C", "precio": 7.99 }
]
Escribe un script en Node.js que lea este archivo y muestre los nombres y precios de los productos en la consola.
Pista: Usa fs.readFile
y convierte los datos con JSON.parse
.
Reto 4: Variables de entorno con dotenv
-
Instala la librería
dotenv
en tu proyecto (npm install dotenv
). -
Configura un archivo
.env
con las siguientes variables:
PORT=5000
MENSAJE_BIENVENIDA="¡Hola desde Node.js!"
- Escribe un script que cargue estas variables y use el valor de
PORT
para iniciar un servidor, mostrando el mensaje deMENSAJE_BIENVENIDA
en la consola.
Pista: Usa el siguiente código como referencia:
require('dotenv').config();
console.log(process.env.MENSAJE_BIENVENIDA);
const port = process.env.PORT || 3000;
console.log(`Servidor corriendo en el puerto ${port}`);
Reto 5: Simular una base de datos local
-
Crea un archivo
productos.json
con un listado inicial de productos como en el reto 3. -
Escribe un script en Node.js que permita:
- Añadir un nuevo producto al archivo desde la línea de comandos (usa
process.argv
). - Mostrar todos los productos guardados.
- Ejemplo de uso:
- Añadir un nuevo producto al archivo desde la línea de comandos (usa
node productos.js add "Producto D" 12.99
node productos.js list
Pista: Usa fs.readFile
, fs.writeFile
y JSON.parse
.