Servicios Web con ExpressJS y Programación Orientada a
MongoDB Servicios
SERVICIOS WEB CON EXPRESS JS y MONGO DB
MongoDB es una base de datos opensource NOSQL basada en documentos.
1. Instalación de MongoDB
Descargar MongoDB para Windows:
https://fastdl.mongodb.org/win32/mongodb-win32-x86_64-2012plus-4.2.3-
signed.msi
Descargar e instalar el administrador gráfico MongoDB Compass:
https://www.mongodb.com/download-center/compass
Abrir el Mongo Compass, presionar el botón ‘Connect’ y crear una nueva base de
datos con el nombre, express-server:
1
Servicios Web con ExpressJS y Programación Orientada a
MongoDB Servicios
2. Creación de Proyecto e Instalación paquete Mongoose
Crear una nueva carpeta para el proyecto con el nombre express-server, dentro de la
carpeta, utilizando la consola digitar el comando: npm init (Enter a todas las preguntas)
Luego, ingresar a la carpeta e instalar los siguientes módulos:
npm install express –save
npm install mongoose –save
npm body-parser –save
Mongoose, es la librería que permite la conexión a bases de datos Mongo y realizar el
modelado de objetos:
Luego, procedemos a referencia la librería al inicio del archivo server.js:
Al final del archivo, establecemos conexión con la Base de Datos:
2
Servicios Web con ExpressJS y Programación Orientada a
MongoDB Servicios
3. Creación Modelo Usuario
Un modelo es la representación de una colección, comparado con una base de datos
SQL, se puede decir que es una tabla.
Procedemos a crear una nueva carpeta llamada ‘models’ y dentro un archivo con el
nombre users.js, el código de este archivo sería el siguiente:
3
Servicios Web con ExpressJS y Programación Orientada a
MongoDB Servicios
Procedemos a instalar un plugin de mongoose, el cual previene que se dupliquen los
valores de los campos indicados como únicos en la colección usuarios.
npm install --save mongoose-unique-validator
Finalmente, el archivo users.js con la definición de campos y utilizando el plugin
validador, queda de la siguiente manera:
Procedemos a instalar la librería Bcrypt, la cual permite encriptar las contraseñas,
después de eso, creamos una carpeta con el nombre ‘routes’ y dentro un archivo llamado
users.js:
Este archivo tiene varias consideraciones, la primera es que se exporta el modelo de
usuarios, la segunda es que se exporta Express y Bcrypt, ya que en este archivo
crearemos los Servicios Web relacionados con los usuarios.
4
Servicios Web con ExpressJS y Programación Orientada a
MongoDB Servicios
Se crea el archivo index.js, el cual incluirá todos los archivos de rutas:
Finalmente, en el archivo server.js, se debe incluir el archivo index:
5
Servicios Web con ExpressJS y Programación Orientada a
MongoDB Servicios
4. Creación de usuarios
Implementamos el Servicio Web para crear usuarios a través del método POST:
6
Servicios Web con ExpressJS y Programación Orientada a
MongoDB Servicios
Se envía una petición POST a la dirección http://localhost:3000/users, con los datos para
crear el nuevo usuario
Verificamos la creación del documento (registro) en la Base de Datos:
¿Funcionan las validaciones? ¿Qué sucede si intentamos crear otro usuario con el mismo
correo electrónico?
7
Servicios Web con ExpressJS y Programación Orientada a
MongoDB Servicios
En el modelo tenemos especificado que el email es un campo único:
Al tratar de crear un usuario con el mismo correo, efectivamente se retorna un error:
5. Consulta de usuarios
Agregamos el código en el método GET del archivo routes/users.js, para consultar todos
los usuarios de la base de datos:
8
Servicios Web con ExpressJS y Programación Orientada a
MongoDB Servicios