Node.js es un entorno de ejecución de JavaScript que permite crear aplicaciones del lado del servidor de manera eficiente y escalable. Express.js, por su parte, es un framework minimalista para Node.js que facilita la creación de servidores web y APIs RESTful. En este tutorial, aprenderás cómo crear un servidor básico utilizando Node.js y Express, y cómo manejar rutas y peticiones HTTP.
Comienza creando una carpeta para tu proyecto y navegando hacia ella:
mkdir mi-servidor-node
cd mi-servidor-node Luego, inicializa un nuevo proyecto Node.js con el comando:
npm init -y Esto generará un archivo package.json en tu carpeta de proyecto.
Instala Express en tu proyecto utilizando npm:
npm install express Ahora crea el archivo index.js que contendrá la lógica principal del servidor:
touch index.js Dentro del archivo index.js, escribe el siguiente código para configurar un servidor básico:
const express = require('express');
const app = express();
const PORT = 3000;
app.use(express.json()); // Middleware para parsear JSON
app.get('/', (req, res) => {
res.send('¡Hola, Mundo!');
});
app.listen(PORT, () => {
console.log(`Servidor corriendo en http://localhost:${PORT}`);
}); Este código configura un servidor Express que responde a las peticiones GET en la ruta raíz con el mensaje “¡Hola, Mundo!”.
Para iniciar el servidor, utiliza uno de los siguientes comandos:
# Ejecuta el servidor una vez.
node index.js
# Ejecuta el servidor y reinicia automáticamente al detectar cambios en el archivo index.js
node --watch index.js El servidor comenzará a escuchar en el puerto 3000. Puedes abrir tu navegador y visitar http://localhost:3000 para ver la respuesta “¡Hola, Mundo!”.
Añadimos un endpoint para devolver una lista de usuarios:
const users = [
{ id: 1, name: 'Urian Viera' },
{ id: 2, name: 'Brenda Viera' },
];
app.get('/users', (req, res) => {
res.json(users);
}); Ahora, cuando navegues a http://localhost:3000/users, recibirás la lista de usuarios en formato JSON.
Añadimos un endpoint POST para agregar un nuevo usuario:
app.post('/users', (req, res) => {
const newUser = req.body;
newUser.id = users.length + 1;
users.push(newUser);
res.status(201).json(newUser);
}); Este endpoint acepta datos en formato JSON y agrega un nuevo usuario a la lista.
También puedes agregar un endpoint DELETE para eliminar un usuario por su ID:
app.delete('/users/:id', (req, res) => {
const userId = parseInt(req.params.id);
const userIndex = users.findIndex(user => user.id === userId);
if (userIndex >= 0) {
users.splice(userIndex, 1);
res.status(204).send();
} else {
res.status(404).json({ message: 'Usuario no encontrado' });
}
}); Puedes probar estos endpoints utilizando herramientas como Postman o Insomnia. Asegúrate de enviar las solicitudes adecuadas:
/users devuelve la lista de usuarios./users para agregar un usuario con el cuerpo:{ "name": "Nuevo Usuario" } /users/1 para eliminar el usuario con ID 1.