Joan Lecha
2025-01-30
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.
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.
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}`));
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);
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));
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;
Envia peticiones GET y POST para verificar el correcto funcionamiento.
Configura un archivo .env con MONGO_URI y JWT_SECRET.
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! 🚀