Cómo instalar el stack MEAN (MongoDB, Express, Angular y Node) en Ubuntu 20.04

Cómo instalar el stack MEAN (MongoDB, Express, Angular y Node) en Ubuntu 20.04

Toda aplicación web tiene dos divisiones fundamentales: el frontend y el backend. A la hora de decidir qué lenguaje utilizar para el desarrollo, un programador a menudo considera la disponibilidad de un framework que facilite sus tareas. Este factor, junto con la facilidad de despliegue a producción y mantenimiento futuro, suele determinar qué herramientas emplear para un determinado trabajo. En esta guía aprenderás cómo instalar el stack MEAN (MongoDB, Express, Angular y Node) en Ubuntu 20.04.

Antes de comenzar, repasemos los componentes del stack y su propósito:

  • MongoDB es un sistema de bases de datos no relacionales que goza de gran popularidad. En vez de utilizar tablas para almacenar datos, lo hace en documentos con una estructura similar a JSON.
  • Express es un framework minimalista para el desarrollo de aplicaciones que empleen NodeJS. Provee muchas herramientas que lo hacen ideal para la creación de APIs.
  • Angular es un framework para el desarrollo de aplicaciones web dinámicas para distintas plataformas. Actualmente Google se encarga del mantenimiento de Angular.
  • Node actúa como el cimiento del stack, respondiendo ante eventos y manejando de forma eficiente las conexiones a la aplicación.

Requisitos previos

Paso 1: Instalación de Node

Entre las alternativas disponibles para instalar Node y herramientas relacionadas, la más directa es a través de NVM (Node Version Manager). En primer lugar, instala el gestor mediante el siguiente comando:

wget -qO- https://raw.githubusercontent.com/nvm-sh/nvm/v0.38.0/install.sh | bash

A continuación, abre una nueva terminal o ejecuta source ~/.bashrc para poder incorporar las variables de entorno necesarias para NVM. Entre las versiones disponibles que entrega nvm list, es recomendable elegir la LTS (Long-Term Support) que corresponda a la más reciente de ellas (14.17.0 o lts/fermium en la imagen de abajo):

Instala la versión elegida:

nvm install lts/fermium

Es importante destacar que junto con esta instalación también se agrega npm, el gestor de paquetes de Node. Para verificar las versiones instaladas puedes usar los siguientes comandos:

node --version
npm --version

Después de tener disponible ambas utilidades, en el próximo paso instalaremos el resto de los componentes necesarios.

Paso 2: Instalación de Express y Angular

Ahora que dispones de npm, ejecuta los siguientes comandos para iniciar un nuevo proyecto en un nuevo directorio llamado app. A continuación, instalarás Express, Angular, y el driver de MongoDB para Node en ese directorio que alojará tu aplicación. En particular, npm init genera el archivo package.json para guardar los metadatos del proyecto.

mkdir app && cd app
npm init -y
npm install express @angular/cli mongodb

En caso de que se te pregunte si deseas compartir datos de uso de forma anónima con Google, ingresa n y presiona Enter.

Paso 3: Creación del archivo index.js

Para comenzar, crea el archivo index.js:

nano index.js

y agrega el siguiente contenido:

const express = require('express');
const MongoClient = require('mongodb').MongoClient;
const app = express();

const usuario = process.env.USUARIO_MONGO;
const pass = process.env.PASS_MONGO;
app.get('/', (req, res) => {
    MongoClient.connect('mongodb://${usuario}:${pass}@localhost:27017',
        { useNewUrlParser: true, useUnifiedTopology: true }, (err, client) => {
            if (err) throw err;
            const db = client.db('sistema');

            db.collection('usuarios').findOne({}, (findErr, result) => {
                if (findErr) throw findErr;

                const { nombre, edad, estado } = result;
                res.send(`${nombre} tiene ${edad} años y se encuentra ${estado}.`);
                client.close();
            });
        });
});
app.listen(8000);
module.exports = app;

Por motivo de que MongoDB requiere autenticación, necesitarás indicar el usuario y la contraseña que utilizarás para acceder a la base de datos. Incluir las credenciales en texto plano dentro de un archivo de código es una mala idea por cuestiones de seguridad. Por lo general, se prefiere colocar cualquier dato sensible en variables de entorno y acceder a estas desde el código.

Para crear temporariamente las variables USUARIO_MONGO y PASS_MONGO, haz lo siguiente luego de reemplazar tu_contraseña_aqui por el dato correspondiente a adminsistema:

export USUARIO_MONGO="adminsistema"
export PASS_MONGO="tu_contraseña_aqui"

Ahora sí puedes servir el archivo index.js a través de Node:

node index.js

El resultado debería ser el siguiente al abrir el navegador con la IP del servidor y el puerto 8000:

En este punto ya dispones de una aplicación simple funcionando con Node, Express, y MongoDB. La inclusión de Angular en el esquema del desarrollo está fuera del alcance de este artículo por su complejidad.

Conclusión

En este artículo aprendiste cómo instalar los componentes del stack MEAN en Ubuntu 20.04. Además, escribiste una aplicación simple con Node, Express y MongoDB, incluyendo la autenticación mediante variables de entorno.

¿Te resultó útil esta guía?

Imagen por defecto
Gabriel Cánepa
Gabriel trabaja actualmente como desarrollador full-stack en Scalar, una firma que se dedica a hacer valuaciones de empresas. Es Administrador de Sistemas certificado por la Fundación Linux y previamente ha escrito un gran número de artículos y contenidos técnicos sobre el tema para: DigitalOcean, Linode, Carrera Linux Argentina y Tecmint. Tiene una certificación en programación de la Universidad de Brigham Young-Idaho, y está completando las carreras de programador y analista de sistemas en la Universidad Nacional de Villa Mercedes (UNViMe). En su tiempo libre, Gabriel disfruta leyendo libros de Stephen R. Covey, tocando piano y guitarra, y enseñando conocimientos de programación a su dos hijas.