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.