Crea tu API REST con Express.js: Guía Paso a Paso

Joan Lecha

2025-01-30

Cover Image for Crea tu API REST con Express.js: Guía Paso a Paso

Express.js es un framework minimalista para Node.js que permite crear aplicaciones web y APIs de manera rápida y eficiente. En esta guía, aprenderás a construir una API REST desde cero, siguiendo buenas prácticas y asegurando su funcionalidad.

1. Configuración del Entorno

Antes de comenzar, asegúrate de tener instalado Node.js. Luego, crea un nuevo proyecto y configura Express.js:

mkdir api-express && cd api-express
npm init -y
npm install express dotenv cors mongoose

Explicación de dependencias:

  • express: Framework para manejar rutas y peticiones.

  • dotenv: Para manejar variables de entorno.

  • cors: Para permitir peticiones desde otros dominios.

  • mongoose: Para interactuar con MongoDB.

2. Creación del Servidor con Express

Crea un archivo server.js y configura el servidor básico:

const express = require('express');
const dotenv = require('dotenv');
const cors = require('cors');

dotenv.config();
const app = express();
app.use(express.json());
app.use(cors());

const PORT = process.env.PORT || 5000;
app.listen(PORT, () => console.log(`Servidor corriendo en el puerto ${PORT}`));

3. Definiendo Rutas y Controladores

Crea una carpeta routes y dentro un archivo userRoutes.js:

const express = require('express');
const router = express.Router();

router.get('/users', (req, res) => {
  res.json({ message: 'Lista de usuarios' });
});

module.exports = router;
Importa las rutas en server.js:
const userRoutes = require('./routes/userRoutes');
app.use('/api', userRoutes);

4. Conectando con una Base de Datos

Para usar MongoDB, configura la conexión en server.js:

const mongoose = require('mongoose');
mongoose.connect(process.env.MONGO_URI, {
  useNewUrlParser: true,
  useUnifiedTopology: true
}).then(() => console.log('MongoDB conectado'))
.catch(err => console.error(err));

5. Implementación de Autenticación con JWT

Instala jsonwebtoken y bcryptjs:

npm install jsonwebtoken bcryptjs

Crea un middleware de autenticación authMiddleware.js:

const jwt = require('jsonwebtoken');

const authMiddleware = (req, res, next) => {
  const token = req.header('Authorization');
  if (!token) return res.status(401).json({ message: 'Acceso denegado' });

  try {
    const verified = jwt.verify(token, process.env.JWT_SECRET);
    req.user = verified;
    next();
  } catch (error) {
    res.status(400).json({ message: 'Token inválido' });
  }
};

module.exports = authMiddleware;

6. Pruebas y Despliegue

Pruebas con Postman o Insomnia

  • Envia peticiones GET y POST para verificar el correcto funcionamiento.

Despliegue en Heroku o Vercel

  1. Configura un archivo .env con MONGO_URI y JWT_SECRET.

  2. Sube el código a GitHub y despliega en Heroku o Vercel.

Conclusión

Has creado una API REST funcional con Express.js, MongoDB y autenticación con JWT. Puedes ampliar este proyecto agregando validaciones, roles de usuario y documentación con Swagger. ¡Sigue mejorando tu API! 🚀

Los últimos posts de nuestro blog