Este capítulo de nuestro libro electrónico está dedicado a un aspecto fundamental del desarrollo de API con NodeJS: crear un CRUD (Crear, Leer, Actualizar, Eliminar) utilizando MongoDB como base de datos. Cubramos paso a paso cómo crear, leer, actualizar y eliminar datos en una base de datos MongoDB usando NodeJS.
Antes de comenzar, es importante comprender qué es MongoDB. MongoDB es una base de datos orientada a documentos que almacena datos en documentos BSON, una representación binaria de JSON. Esto lo hace muy flexible y escalable, perfecto para trabajar con NodeJS.
Configuración del entorno
Primero, necesitamos instalar NodeJS y MongoDB en nuestro sistema. Una vez instalado, creemos un nuevo proyecto NodeJS e instalemos algunas dependencias. Usaremos 'Express' para crear el servidor, 'mongoose' para interactuar con MongoDB y 'body-parser' para analizar el cuerpo de las solicitudes HTTP.
$npm inicio $ npm instala el analizador de cuerpo de mangosta express
Después de instalar estas dependencias, configuremos nuestro servidor Express y conectemos a MongoDB usando Mongoose.
const expresar = requerir('expresar'); const mangosta = require('mangosta'); const bodyParser = require('body-parser'); aplicación constante = expresar(); mongoose.connect('mongodb://localhost/crud-nodejs-mongodb', {useNewUrlParser: verdadero, useUnifiedTopology: verdadero}); aplicación.use(bodyParser.json()); app.listen(3000, () => console.log('Servidor ejecutándose en el puerto 3000'));
Creando el modelo de datos
Antes de que podamos trabajar con nuestros datos, necesitamos definir un modelo de datos. Creemos una plantilla de 'Usuario' con los campos 'nombre' y 'correo electrónico'.
const mangosta = require('mangosta'); const Esquema = mangosta.Esquema; const UserSchema = nuevo esquema({ nombre: cadena, correo electrónico: cadena }); module.exports = mongoose.model('Usuario', UserSchema);
Creación de rutas CRUD
Ahora que tenemos nuestro modelo de datos, podemos crear nuestras rutas CRUD. Creemos un archivo 'routes.js' e importemos nuestro modelo 'Usuario'.
const expresar = requerir('expresar'); const Usuario = require('./models/Usuario'); enrutador constante = express.Router();
Comencemos con la ruta 'Crear'. Esta ruta recibirá una solicitud POST con los datos del usuario y creará un nuevo usuario en la base de datos.
router.post('/usuarios', async (req, res) => { usuario constante = nuevo usuario (req.body); esperar usuario.save(); res.json({estado: 'Usuario creado'}); });
La ruta 'Leer' buscará todos los usuarios de la base de datos y devolverá una respuesta JSON con los datos del usuario.
router.get('/usuarios', async (req, res) => { usuarios constantes = espera Usuario.find(); res.json(usuarios); });
La ruta 'Actualizar' recibirá una solicitud PUT con el ID de usuario y los datos del nuevo usuario. Encontrará al usuario en la base de datos y actualizará sus datos.
router.put('/usuarios/:id', async (req, res) => { espere User.findByIdAndUpdate(req.params.id, req.body); res.json({estado: 'Usuario actualizado'}); });
Finalmente, la ruta 'Eliminar' recibirá una solicitud ELIMINAR con el ID de usuario. Encontrará al usuario en la base de datos y lo eliminará.
router.delete('/usuarios/:id', async (req, res) => { espere User.findByIdAndRemove(req.params.id); res.json({estado: 'Usuario eliminado'}); });
Con eso, tenemos un CRUD completo con NodeJS y MongoDB. Este es un ejemplo básico, pero puede ampliarlo para adaptarlo a sus necesidades. Esperamos que este capítulo te haya resultado útil para aprender a crear un CRUD con NodeJS y MongoDB.