Construye una API REST desde cero con Express: estructura del proyecto, endpoints, JSON, middlewares y conexión a MongoDB.
Crear una API REST con Node.js y MongoDB

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