16.5. Crear un CRUD con NodeJS y MongoDB: conectarse a la base de datos MongoDB
En esta sección de nuestro libro electrónico, cubriremos uno de los aspectos más importantes del desarrollo de API en NodeJS: crear un CRUD (Crear, Leer, Actualizar, Eliminar) con NodeJS y MongoDB. Este es un paso crucial para cualquier desarrollador que desee crear aplicaciones sólidas y escalables.
Conexión a la base de datos MongoDB
Antes de comenzar a crear nuestro CRUD, necesitamos establecer una conexión con la base de datos MongoDB. Hay varias formas de hacer esto, pero una de las más comunes es usar el paquete Mongoose, que es un ODM (Object Data Modeling) para MongoDB y Node.js.
Para instalar Mongoose, puede usar npm (Node Package Manager) con el siguiente comando:
npm instalar mangosta
Una vez instalado, puede comenzar a usarlo para conectarse a MongoDB. A continuación se muestra un ejemplo de cómo hacer esto:
const mangosta = require('mangosta'); mongoose.connect('mongodb://localhost/test', {useNewUrlParser: verdadero, useUnifiedTopology: verdadero});
Este código se conecta a una instancia local de MongoDB que se ejecuta en su computadora. Si está utilizando un servicio de base de datos MongoDB alojado, como MongoDB Atlas, deberá reemplazar 'mongodb://localhost/test' con la URL de conexión proporcionada por su servicio de alojamiento.
Creando un CRUD con NodeJS y MongoDB
Una vez que hayamos establecido nuestra conexión con MongoDB, podemos comenzar a crear nuestro CRUD. Para hacer esto, primero necesitamos definir un esquema para nuestros datos. En Mongoose, un esquema es una estructura que define la forma de los documentos dentro de una colección de MongoDB.
Aquí tienes un ejemplo de cómo puedes definir un esquema para una entrada de blog:
const blogSchema = nueva mangosta.Schema({ título: cadena, autor: cuerda, cuerpo: cuerda, comentarios: [{ cuerpo: Cadena, fecha: Fecha }], fecha: {tipo: Fecha, predeterminado: Fecha.ahora}, oculto: booleano, meta: { votos: Número, favoritos: Número } });
Una vez que tengamos nuestro esquema definido, podemos crear una plantilla a partir de él. Un modelo es una clase con la que construimos documentos. En el siguiente ejemplo, creamos un modelo 'Blog' a partir de nuestro esquema 'blogSchema':
const Blog = mangosta.model('Blog', blogSchema);
Con nuestra plantilla en mano, podemos comenzar a crear, leer, actualizar y eliminar documentos. A continuación se muestra un ejemplo de cómo puede crear un nuevo documento utilizando nuestra plantilla 'Blog':
const blogPost = new Blog({ título: 'Mi primera publicación', autor: 'John Doe', cuerpo: 'Esta es mi primera publicación en el blog' }); blogPost.save(función (err, blogPost) { si (err) devuelve console.error(err); console.log(blogPost.title + "guardado en la colección de blogs."); });
Para leer documentos, puede utilizar el método 'buscar'. A continuación se muestra un ejemplo de cómo puede encontrar todas las publicaciones de blog de un autor determinado:
Blog.find({ autor: 'John Doe' }, función (err, blogs) { si (err) devuelve console.error(err); consola.log(blogs); });
Para actualizar un documento, puede utilizar el método 'updateOne'. Aquí tienes un ejemplo de cómo puedes actualizar el título de una entrada de blog:
Blog.updateOne({ título: 'Mi primera publicación' }, { título: 'Mi publicación actualizada' }, función (err, res) { si (err) devuelve console.error(err); consola.log(res); });
Finalmente, para eliminar un documento, puede utilizar el método 'deleteOne'. Aquí tienes un ejemplo de cómo puedes eliminar una entrada de blog:
Blog.deleteOne({ título: 'Mi publicación actualizada' }, función (err) { si (err) devuelve console.error(err); console.log('Publicación eliminada'); });
Con esto, concluimos nuestra introducción a la creación de un CRUD con NodeJS y MongoDB. En el próximo capítulo, exploraremos cada una de estas operaciones con más detalle y aprenderemos cómo manejar errores y validar datos.