Una API REST expone recursos (por ejemplo /events) y permite operar con ellos usando HTTP: GET, POST, PUT/PATCH y DELETE. Con Node.js + Express, el backend es rápido de montar y muy común en proyectos modernos.
1) Inicializar proyecto
npm init -y
npm i express mongoose
npm i -D nodemon
2) Servidor Express mínimo
const express = require("express");
const app = express();
app.use(express.json());
app.get("/health", (req, res) => res.json({ ok: true }));
app.listen(3000, () => console.log("API en http://localhost:3000"));
3) Conectar a MongoDB con Mongoose
const mongoose = require("mongoose");
async function connectDB() {
await mongoose.connect(process.env.MONGO_URL);
console.log("MongoDB conectado");
}
En proyectos reales, guarda MONGO_URL en variables de entorno (no en el código).
4) Definir un modelo (Schema)
const { Schema, model } = require("mongoose");
const EventSchema = new Schema({
title: { type: String, required: true },
date: { type: Date, required: true },
attendees: { type: [String], default: [] },
durationMin: { type: Number, default: 60 },
}, { timestamps: true });
const Event = model("Event", EventSchema);
5) Endpoint ejemplo: listar y crear
app.get("/events", async (req, res) => {
const events = await Event.find().sort({ date: 1 });
res.json(events);
});
app.post("/events", async (req, res) => {
const created = await Event.create(req.body);
res.status(201).json(created);
});
6) Estructura recomendada
- routes/ para rutas
- models/ para modelos
- controllers/ para lógica
- middlewares/ para validación/errores
