¿Cómo crear una Rest API en MongoDB?
Ahora que tenemos la posibilidad de utilizar MongoDB para almacenar los datos de forma persistente, podemos implementar express y MongoDB para construir una rest api.
Ejemplo de un programa en Nodejs que crea una Rest Api con Express y MongoDB
// imports
const express = require("express");
const logger = require("morgan");
const errorHandler = require("errorhandler");
const mongodb = require("mongodb");
const mongo = mongodb.MongoClient;
const bodyParser = require("body-parser");
const uri = "mongodb://localhost:27017";
const app = express();
// middlewares
app.use(logger("dev"));
app.use(bodyParser.json());
// conectar a la base de datos
mongo.connect(uri, (err, con) => {
// collection
const estudiantesCollection = con.db("escuela").collection("estudiantes");
// en caso de error finalizar
if (err) {
console.log(`No se puede conectar con la uri ${uri}`);
process.exit(1);
}
app.get("/estudiantes", (req, res) => {
estudiantesCollection.find({}).toArray((err, estudiantes) => {
if (err) {
console.log(err);
return res.sendStatus(500);
}
res.send(JSON.stringify(estudiantes, null, 2));
});
});
app.post("/estudiantes", (req, res) => {
estudiantesCollection.insert(req.body, (err, respuesta) => {
if (err) {
console.log(err);
return res.sendStatus(500);
}
res.send(JSON.stringify(respuesta, null, 2));
});
});
app.put("/estudiantes/:id", (req, res) => {
estudiantesCollection.update(
{ _id: req.params.id },
{ $set: req.body },
(err, respuesta) => {
if (err) {
return res.sendStatus(500);
}
res.send(JSON.stringify(respuesta, null, 2));
}
);
});
app.delete("/estudiantes/:id", (req, res) => {
const _id = req.params.id;
estudiantesCollection.remove({ _id }, (err, respuesta) => {
if (err) {
return res.sendStatus(500);
}
res.send(JSON.stringify(respuesta, null, 2));
});
});
app.listen(3000);
console.log("Listening on http://localhost:3000");
});