Saltar a contenido

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

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 con node 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 de MENSAJE_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:
node productos.js add "Producto D" 12.99
node productos.js list

Pista: Usa fs.readFile, fs.writeFile y JSON.parse.