Pasos para Preparar tu Back End en Node, Express y MongoDB en Linux

Fridel Baldiviezo
4 min readDec 10, 2020

El siguiente tutorial es para describir paso a paso como se debe contar con una aplicacion base para poder realizar un back end con node js , express y mongoDB considerando que tiene varias dependencias.

Se colocara con negrilla el codigo que deben copiar en la consola de la terminal o en su caso en el codigo mediante un editor de codigo de su preferencia.

Tomar nota que en el caso de linux es importante utilizar sudo por sus medidas de seguridad que tiene el SO.

PASOS A SEGUIR PARA INSTALAR EL NODEJS Y EXPRESS

  • se debe crear la carpeta con el nombre del proyecto. y abrimos la terminal donde inicializamos segun su link de directorio.
  • en la terminal escribir npm init -y para iniciar el package.json.
  • instalar express , ingresar a la pagina https://expressjs.com/es/ , ingresar nuevamente a la terminal y colocar npm install express.
  • crear el archivo index.js e iniciar el express con : const express = require(‘express’);
  • Crear el servidor express : const app = express();
  • Colocar app.listen(3000,()=>{console.log(‘Servidor Corriendo en Puerto’+3000);});
  • Instalar nodemon para tener facilidad en el manejo del servidor en la pagina https://www.npmjs.com/package/nodemon e instalar con este comando npm install -g nodemon
  • Para iniciar la aplicacion primero ingresar a package.json donde dice script colocar :"start:dev": "nodemon index.js" con sudo npm run start:dev
  • Se adjunta los codigos de error que el back end debe retornar en el API REST de comunicacion con front end.

PREPARANDO LA BD EN MONGODB

  • Ingresar al siguiente link https://www.mongodb.com/cloud/atlas/efficiency, crear tu usuario si es la primera vez o en su caso iniciarlo si ya lo tienes creado.
  • Apretar en crear un nuevo cluster
  • Apretar en conectar, realizarlo desde mongo compass
  • Descargar mongo compass e instalarlo en su equipo.
  • Crear un usuario en database user.
  • Colocarlo en conectar con esta sentencia y cambiarlo con usuario y password mongodb+srv://usuario:password@cluster0.5akso.mongodb.net/basededatos?authSource=admin&replicaSet=atlas-9zed2a-shard-0&readPreference=primary&appname=MongoDB%20Compass&ssl=true.
  • Para conectar mongo con node ingresar a este link: https://mongoosejs.com/ e instalar en su terminal con npm i mongoose
  • Instalar una dependencia npm i dotenv para tener variables de entorno
  • Crear una carpeta dentro de los documentos del backend server llamado database y dentro crear el archivo config.js y colocar el siguiente codigo:const mongoose = require(‘mongoose’);

const dbConnection = async () => {try{ await mongoose.connect(process.env.DB_CONN, { useNewUrlParser: true, useUnifiedTopology: true, useCreateIndex: true, useFindAndModify: false}); console.log(‘DB Online’);} catch(error){ console.log(error); throw new Error(‘Error a la hora de iniciar’);}}; module.exports={ dbConnection}

En la version de Mongoose 6.0.12 ya no es necesaria algunas sentencias quedando el codigo asi:

const dbConnection = async () => {

try{

await mongoose.connect(process.env.DB_CONN, { });

console.log(‘DB Online’);

} catch(error){

console.log(error);

throw new Error(‘Error a la hora de iniciar’);

}};

module.exports={ dbConnection}

  • crear un documento .env y colocar variables de entorno.

PORT=3000 DB_CONN=mongodb+srv://usuario:password@cluster0.5akso.mongodb.net/basededatos

  • Modificar el index.js con las siguientes sentencias:

require(‘dotenv’).config(); const {dbConnection} = require(‘./database/config’); //Base de Datos dbConnection(); // Servidor Corriendo app.listen(process.env.PORT,()=>{ console.log(“Servidor Corriendo en Puerto “+process.env.PORT);});

Terminal, si funciona correctamente debe salirles con esos mensajes.
  • Instalar del siguiente link: https://www.npmjs.com/package/cors npm i cors para que podamos realizar end points y no se cuente con problemas con los navegadores.
  • Incluir en su archivo index.js las siguiente sentencias:

const cors = require(‘cors’); //Configurar Cors app.use(cors());

DOCUMENTANDO NODE JS

  • Para realizar la documentacion de las apis, se va utilizar apidoc, se debe instalar como : npm install apidocs

MEJORAR EL TIEMPO EN NODEJS

  • Se debe instalar momentjs como npm install moment.
  • Es importante a la hora de configurar el moment en nodejs colocar las siguiente instancia:
  • const moment = require(‘moment’);
  • y si estas utilizando mongo como en este caso, dentro de los schemas, debe parsear como objeto y el tipo debe ser string:

createat: {

type: String,

default:()=> moment(new Date()).format(‘DD-MM-YYYY hh:mm:ss’)

}

VALIDAR CAMPOS EN NODE JS

  • Para validar los campos instalar npm install express-validators
  • Tienes que tener en cuenta que se utiliza dos instancias la primera check donde colocar las validaciones especificas.

check(‘nombre’,’El nombre es obligatorio’).not().isEmpty(),

  • La segunda instancia es validatorresult donde mostraras los mensajes de error de la validacion y crearlo en un middleware.

const { response } = require(“express”);

const { validationResult } = require(“express-validator”);

const validarCampos=(req,res=response,next)=>{

const errores = validationResult(req);

if(!errores.isEmpty()){return res.status(400).json({ ok:false,errores: errores.mapped()});}next();};

module.exports={ validarCampos};

ENCRIPTAR CAMPOS

  • instalar npm i bcryptjs

--

--

Fridel Baldiviezo
0 Followers

Ing.de Sistemas,MBA en Direccion de Proyectos con experiencia en EduTech y HealthTech mediante aplicaciones web como moviles.