Creación de un CRUD simple con Node.js, Express y MongoDB

Continuamos con los pequeños proyectos API en esta ocasión vamos a crear un REST API para agregar productos en una colección de MongoDB.

Te puede interesar

Para empezar tenemos que verificar que tenemos instalado Node.js en nuestro entorno de desarrollo mediante el comando:

node -v 
npm -v

Listo si tenemos instalado lo necesario vamos a proceder a crear la carpeta para el proyecto le vamos a nombrar crud-express.

Dentro de este directorio vamos a ejecutar el comando:

npm init

El comando crea un archivo package.json que nos ayuda a administrar las dependencias que vamos a necesitar para nuestro proyecto.

Vamos a abrir nuestro editor de código preferido en mi caso uso Visual Studio Code, para crear un archivo llamado server.js, puedes llamarlo como gustes.

Agregar la dependencia Express para crear el servidor

Agregaremos la dependencia mediante el siguiente comando:

npm install express --save

 –save guarda express como una dependencia en package.json. Luego con el comando npm install se podrán recuperar todas las dependencias.

En nuestro archivo server.js vamos a agregar el siguiente código para iniciar nuestro servidor Express lo que vamos a hacer es importar los módulos necesarios para ejecutarlo.

const express = require('express');
const app = express();
const port = 3000;

app.listen(3000, function () {
    console.log('listening on '+port)
});

Adicional tenemos que indicarle el puerto, lo suelo poner como constante pero tu puedes ponerlo directamente en el método listen.

Agregaremos un metodo GET para comprobar el funcionamiento de nuestro servidor.

app.get('/', (req, res) => {
    res.send("Hello world!")
})

Ahora, ejecutamos en nuestra consola node server.js y en un navegador escribiremos la ruta http://localhost:3000 podremos ver nuestro mensaje de Hello world! entonces nuestro servidor esta funcionando correctamente.

Agregamos nodemon a nuestro proyecto

Para facilitarnos el desarrollo instalaremos nodemon esta dependencia reinicia automáticamente el servidor cada que existe un cambio en los archivos del proyecto.

En este caso solo necesitamos nodemon en el proceso de desarrollo por ello lo guardaremos con la bandera –save-dev para que lo guarde como dependencia de desarrollo.

npm install nodemon --save-dev

Una vez instalado agregaremos una clave de script en nuestro archivo package.json para ejecutar nodemon con un comando npm.

En la sección de scripts agregamos lo siguiente:

"scripts": {
    "dev": "nodemon server.js",
  }

Ahora en nuestra consola ejecutamos el comando para llamar este script:

npm run dev

Agregamos MongoDB para guardar los datos

En este caso vamos a usar la dependencia de MongoDB para la conexión, por ser un ejemplo practico no vamos a ver mongoose lo dejaremos para otro tutorial.

Instalamos la dependencia ejecutando el siguiente comando

npm install mongodb --save

En nuestro archivo server.js crearemos la constante de conexión de MongoDB

const MongoClient = require('mongodb').MongoClient

Y el código para la conexión es el siguiente, recuerda que todo esto lo manejaremos en nuestro server.js

MongoClient.connect('mongodb://localhost/crud-express', { useNewUrlParser: true, useUnifiedTopology: true }, (err, client) => {
    if (err) return console.error(err)
    console.log('Connected to Database')
})

Una vez que tenemos la conexión ya podemos empezar a crear nuestro CRUD API.

Para que express envié y reciba los datos en formato JSON le agregaremos una nueva dependencia body-parser para ello ejecutamos el siguiente comando

npm install body-parser --save

Creación del CRUD

Vamos a definir dos constantes que tenemos que usar en nuestros métodos, GET, POST, PUT, DELETE en nuestro archivo server.js agregaremos los siguientes cambios

let db;
let collection;
MongoClient.connect('mongodb://localhost/crud-express', { useNewUrlParser: true, useUnifiedTopology: true }, (err, client) => {
    if (err) return console.error(err)
    console.log('Connected to Database')
    db = client.db('crud-express')
    collection= db.collection('product')
})

Las variables db y collection nos permitirán las conexiones ya acciones sobre nuestros datos.

Luego vamos a crear cada uno de los métodos para nuestro REST

GET: Obtener la colección de datos ingresados

app.get('/product', (req, res) => {
    db.collection('product').find().toArray()
        .then(results => {
            res.json(results);
        }).catch(error => console.error(error));
})

POST: Agregar un nuevo producto en la colección

app.post('/product', (req, res) => {
    collection.insertOne(req.body)
        .then(result => {
            res.json('Success');
        })
        .catch(error => console.error(error))
})

PUT: Modificar los datos mediante el nombre del producto

app.put('/product/:id', (req, res) => {
    collection.findOneAndUpdate(
        { name: req.params.id },
        {
            $set: {
                name: req.body.name,
                price: req.body.price
            }
        },
        {
            upsert: true
        }
    ).then(result => { res.json('Updated') })
        .catch(error => console.error(error))
});

DETELE: Eliminar una colección de nuestra base de datos no relacional

app.delete('/product/:id', (req, res) => {
    collection.deleteOne(
        { name: req.params.id }
    )
        .then(result => {
            res.json('Deleted')
        })
        .catch(error => console.error(error))
})

Listo amigos mediante una aplicación o su propio código front-end podemos consumir este servicio REST para nuestro ejemplo usaremos POSTMAN.

Quieres saber mas de POSTMAN lee nuestro articulo

Si deseas el proyecto lo puedes clonar de nuestro repositorio en GITHUB

Recomendado

Deja un comentario

Tu dirección de correo electrónico no será publicada.

aprende a programar aprende a programar desde cero aprende a programar con el chavo aprende a programar como si estuviera en primero pdf aprende a programar con python aprende a programar gratis aprende a programar con kotlin pdf aprende a programar con java pdf aprende a programar android aprende a programar arduino aprende a programar android con kotlin + firebase + google aprende a programar argentina aprende a programar arduino pdf aprende a programar android con kotlin + firebase + google mega aprende a programar android desde cero aprende a programar app aprender a programar blockchain aprender a programar basico aprender a programar buenos aires aprender a programar barcelona aprender a programar bases de datos aprender a programar bogota aprender a programar bash aprender a programar binario aprende a programar con google aprende a programar con kotlin aprende a programar desde cero gratis aprende a programar desde cero pdf aprende a programar dev aprende a programar desde cero en c/c++ parte 1 (primer programa) aprende a programar desde cero – lógica de programación mega aprende a programar diset aprende a programar desde cero en python aprende a programar en una semana con javascript aprende a programar en c aprende a programar en python aprende a programar en java aprende a programar en una semana con javascript pdf aprende a programar en c de 0 a 99 pdf aprende a programar en 20 minutos aprende a programar facil aprende a programar free aprender a programar front end aprender a programar forocoches aprender a programar facil y rapido aprender a programar fivem aprender a programar fortran aprender a programar firmware aprende a programar google aprende a programar gobierno de la ciudad aprende a programar guía visual de programación aprende a programar guía visual de programación pdf aprender a programar gratis en español aprender a programar gratis desde cero aprender a programar gratis para niños aprende a programar html aprende a programar html y css aprender a programar html5 desde cero aprender a programar html5 aprender a programar html pdf aprender a programar hackear aprender a programar en haskell pdf aprender a programar en html gratis aprender a programar inteligencia artificial aprender a programar ios aprender a programar ios desde cero aprender a programar in python aprende a programar con java (informática) pdf aprende a programar jugando aprende a programar java aprende a programar jugando con scratch aprende a programar javascript aprende a programar juegos aprende a programar jugando con scratch pdf aprende a programar java desde cero aprende a programar juegos con python aprender a programar kotlin aprender a programar knx aprender a programar kuka aprender a programar khan academy aprender a programar karel aprende a programar con kotlin pdf gratis aprende a programar con kotlin luján pdf aprende a programar libro aprende a programar libro pdf aprender a programar lego mindstorms ev3 aprender a programar lua aprender a programar logo siemens aprender a programar linux aprender a programar lenguaje c aprender a programar logo aprende a programar max wainewright pdf aprende a programar max wainewright aprende a programar microsoft aprende a programar macros desde 0 aprender a programar macros en excel desde cero aprender a programar minecraft aprender a programar mql5 aprender a programar mario rodriguez rancel pdf aprende a programar niños aprende a programar nacho cabanes aprender a programar niños 10 años aprender a programar .net aprender a programar .net desde cero aprender a programar niños microsoft aprender a programar netbeans aprender a programar niños 3 años aprende a programar online aprende a programar.org aprender a programar en octave aprender a programar orientado a objetos juegos para aprender a programar online como aprender a programar y no morir en el intento aprender a programar html y css aprender a programar algoritmos y fundamentos de programación pdf aprende a programar pdf aprende a programar python aprende a programar para niños aprende a programar php aprende a programar python desde cero aprende a programar pdf gratis aprende a programar paginas web aprende a programar planeta junior aprender a programar que lenguaje quiero aprender a programar que lenguaje me recomiendan aprender a programar para que sirve que se aprende a programar aprende a programar registros aprender a programar rapido aprender a programar raspberry pi aprender a programar reddit aprender a programar raspberry pi 3 y python pdf aprender a programar rpa aprender a programar robot kuka aprender a programar r aprende a programar swift pdf aprende a programar swift aprende a programar scratch aprender a programar sin computadora aprender a programar sql desde cero aprender a programar sql aprender a programar software aprender a programar solo aprende a programar televisa aprende a programar tu primera calculadora aprender a programar trabajando aprender a programar torno cnc aprender a programar tia portal aprende a programar crea tu propio sitio web pdf aprende a programar crea tu propio sitio web aprender a programar por tu cuenta aprende a programar un robot aprende a programar un robot cokitos aprende a programar usando javascript 2013 curso en español aprende a programar un juego aprender a programar unity aprender a programar una app aprender a programar una pagina web aprender a programar udemy aprende a programar videojuegos aprende a programar videojuegos con game maker studio 2 aprende a programar vba aprende a programar videojuegos con scratch aprende a programar visual studio 2010 aprender a programar visual basic excel aprender a programar vba excel aprender a programar valencia aprende a programar web aprender a programar web desde cero aprender a programar wordpress aprender a programar wikihow aprender a programar windows aprender a programar webs aprender a programar windows forms c# aprender a programar xcode desde cero aprender a programar xataka aprender a programar xml aprender a programar xcode aprender a programar en xamarin aprende a programar ya aprende a programar youtube aprender a programar en php y mysql desde cero aprender a programar do zero aprender a programar do zero gratis aprender a programar do zero pdf aprender a programar android do zero aprende a programar desde cero udemy aprende a programar desde cero en java aprende a programar desde cero en c aprender a programar desde cero android aprender a programar desde cero app aprende a programar arduino desde cero aprender a programar apps desde cero aprender a programar arduino desde cero pdf aprender a programar android desde cero pdf aprender a programar aplicaciones desde cero aprender a programar aplicaciones moviles desde cero aprender a programar desde cero visual basic bootcamp aprende a programar desde cero arduino tutorial basico aprende a programar desde cero aprende a programar desde cero c++ aprender a programar desde cero con python aprender a programar desde cero coursera aprender a programar desde cero con visual basic aprender a programar desde cero en c# pdf aprender a programar en java desde cero con netbeans aprender a programar en java desde cero con eclipse aprende a programar de cero aprender a programar de cero gratis fundamentos de programación – aprende a programar desde cero descargar aprender a programar en delphi desde cero aprendiendo a programar a partir de cero aprendiendo a programar a partir de cero pdf aprender a programar con java. de cero hasta hacer sistemas aprender a programar desde cero en visual studio aprender a programar desde cero en mac aprender a programar desde cero en html fundamentos de programación – aprende a programar desde cero fundamentos de programación – aprende a programar desde cero mega aprender a programar desde cero gratis en español aprender a programar desde cero gratis pdf aprender a programar java desde cero gratis aprender a programar arduino desde cero gratis como aprender a programar desde cero gratis para niños aprender a programar en python desde cero gratis aprender a programar en c++ desde cero gratis aprender a programar desde cero html aprender a programar en html desde cero pdf aprender a programar con java. de cero hasta hacer sistemas mega aprender a programar con java. de cero hasta hacer sistemas descargar aprender a programar desde cero java aprender a programar desde cero javascript aprender a programar desde cero jugando aprende a programar java desde cero pdf aprender a programar juegos desde cero aprende a programar en java desde cero udemy aprender a programar en javascript desde cero pdf aprender a programar desde cero libro libros para aprender a programar desde cero pdf aprender a programar en linux desde cero pdf aprender a programar en linux desde cero aprender a programar microcontroladores desde cero aprender a programar en matlab desde cero aprender a programar en matlab desde cero pdf aprender a programar en mysql desde cero aprender a programar desde cero niños aprender a programar en .net desde cero pdf aprender a programar en netbeans desde cero aprender a programar en java desde cero con netbeans pdf aprender a programar desde cero online aprender a programar desde cero gratis online aprende a programar con ruby (desde cero y 100 en español) aprender a programar desde cero python aprender a programar desde cero para niños aprendiendo a programar desde cero patricia salazar pdf aprender a programar desde cero pdf gratis aprender a programar desde cero php aprender a programar desde cero pseint aprendiendo a programar desde cero patricia salazar quiero aprender a programar desde cero aprender a programar en r desde cero aprender a programar en ruby desde cero pdf aprender a programar desde cero sql aprender a programar swift desde cero como se aprende a programar desde cero tutorial aprender a programar desde cero tutoriales para aprender a programar desde cero udemy aprende a programar y crea tus programas desde cero aprender a programar desde cero en unity aprender a programar arduino uno desde cero aprender a programar videojuegos desde cero aprender a programar desde cero web aprender a programar desde cero youtube aprende a programar con el chavo pc aprende a programar con el chavo apk aprende a programar con el chavo del 8 aprende a programar con el chavo descargar aprende a programar con el chavo para pc aprende a programar con el chavo juego aprende a programar con el chavo.com.mx aprende a programar con el chavo app aprende a programar con el chavo para android aprende a programar con el chavo.com aprende a programar con el chavo punto com punto mx como descargar aprende a programar con el chavo descargar aprende a programar con el chavo apk aprende a programar con el chavo en linea aprende a programar con el chavo gratis