Servidor Ubuntu – IV – MEAN

Contenidos

Introducción a MEAN

meanjs
meanjs

MEAN de forma similar a LAMP, es un servidor que usa las siguientes tecnologías, MongoDB (base de datos no relacional), Express (framework de nodejs), Angularjs (framework de la parte cliente) y Nodejs (programación javascript del lado del servidor). Pero ¿qué quiere decir todo esto? simplificando diremos que todo el lenguaje de programación está en javascrip y ahora lo explicamos.

AngularJS

AngularJS
AngularJS

El en lado del cliente, es decir, el ordenador que se conecta a un servidor, todos nosotros somos clientes cuando entramos en una dirección desde Google, hasta el mismo Drouiz, existen varios estándares que son los que los navegadores entienden. El primero, el famoso HTML el esqueleto de una web, lo mínimo necesario para que funcione, posteriormente están los CSS, los estilos, la piel y los músculos, quien da color y belleza y por último javascript, el cerebro, la programación. Antiguamente los navegadores para tener cierto dinamismo en el lado del cliente usaban plugins de Java o de Flash, tecnologías prácticamente obsoletas salvo para algunas aplicaciones. Hoy todos los navegadores entienden javascript.

Javascript comienza a coger popularidad, en mi opinión es un lenguaje complejo y simple a la vez, realmente es lo más abstracto que he conocido, pero ese es su encanto, por supuesto comienza a crear comunidad y nacen librerías que van ayudando a mejorar el código y al final comienzan a surgir los frameworks. Mientras que en PHP el framework se ejecuta en el servidor, con AngularJS lo ejecutamos en el cliente es una página que hace pequeñas peticiones al pinchar en ella, los tiempos de carga son menores y más interactivos. Pero esto es solo una introducción pues es algo de cliente no de servidor que es lo que estamos preparando.

NodeJS

NodeJS
NodeJS

Si en el lado del cliente el estandar es JavaScrip en el lado del servidor ya existián y existen gran cantidad de lenguajes PHP, Phyton, Java y en Windows ASP. ¿no sería magnifico usar el mismo lenguaje? puesta es la idea de NodeJS que el programador no cambie al trabajar en el frontend o en el backend. Así de simple, NodeJS es ese mismo JavaScript adaptado para hacer lo que antiguamente hacía PHP.

Express

express
express

Es un framework de NodeJS, ligero y sencillo, básicamente su funcionamiento es cargar una web de Angular e intercambiar datos, en lugar de cargar completamente una página al pinchar en un link, la filosofía de MEAN es trabajar con Json (básicamente objetos en formato de texto). Un ejemplo sencillo, imaginemos que tenemos una web Angular con su HTML y sus estilos y tiene una opción de idioma, la cual pinchamos, en lugar de PHP enviar de nuevo toda la página, Express envia un Json con los cambios que debe realizar, las imágenes son las mismas y el tiempo de carga mejor ¿no es una gran tecnología?

MongoDB

mongoDB
mongoDB

Pues si tenemos JavaScript en el cliente y en el servidor, ¿porque no en la base de datos? y eso es MongoDB. Una base de datos no relacional, que básicamente almacena objetos de JavaScript. No relacional porque los objetos pueden ser diferentes, mientras que MySQL o MariaDB son similares a una hoja de calculo Excel, datos en filas y columnas todos iguales, MongoDB almacena datos como objetos que no tienen porque estar relacionados entre ellos, estos datos son importantes en el Internet de hoy en día, por ejemplo en el Big Data donde a veces los datos llegan de diferentes formas.

Instalando MEAN

MEAN
MEAN

Instalación de MongoDB

Primero debemos añadir un repositorio adicional con los paquetes de MongoDB actualizados hasta la fecha, pero antes necesitamos la clave de Mongo para la lista de claves de confianza. (Recordad esto es para Ubuntu Server 14, para otras versiones pinchar aquí)

sudo apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv 7F0CEB10

Ahora creamos una lista usando el siguiente comando (Ubuntu 14)

echo "deb http://repo.mongodb.org/apt/ubuntu trusty/mongodb-org/3.0 multiverse" | sudo tee /etc/apt/sources.list.d/mongodb-org-3.0.list

Actualizamos

sudo apt-get update

Instalar última versión estable de MongoDB

sudo apt-get install -y mongodb-org

Por último iniciamos el MongoDB

sudo service mongod start

Instalación de NodeJS

Comenzamos instalando una librería de Ubuntu que nos permite crear paquetes.


1
sudo apt-get install build-essential libssl-dev git
  • build-essential y libssl-dev nos sirve para compilar paquetes, eso haremos compilar el nodejs.
  • git necesario para descargar repositorios desde github

Cargamos el script de instalación nvm desde Github, para posteriormente instalar node.


1
curl https://raw.githubusercontent.com/creationix/nvm/v0.7.0/install.sh | sh

Insertamos el siguiente comando, que recarga el archivo en la terminal.


1
source ~/.profile

Hemos instalado nvm que es un gestor de versiónes para nodeJS, más adelante ya comentaremos que es un gestor de versiónes, con él lo primero es comprobar las versiones que tenemos de nodeJS


1
nvm ls-remote

Aparecerá un listado

Entonces seleccionamos la que deseemos en nuestro caso la última a fecha de hoy,


1
nvm
1
install v5.1.0

Una vez instalado ejecutamos los dos siguientes comandos,


1
2
node -v
npm -v

El primero nos indicará la versión de node y el segundo la de npm.

Expres

Por último instalaremos Express, simplemente con un comando

sudo npm install -gexpress

Y ya tendremos nuestro server MEAN listo

En caso de no funcionar podemos usar:

sudo apt-get install node-express

Probando MEAN

Ya solo nos queda probar y comprobar que funciona, nodeJS funciona de forma diferente a Apache, no es objeto enseñar el funcionamiento pero si haremos que funcione algo sencillito.

MAS INFO

 

Anterior  Indice Siguiente

Leave a Reply

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

You may use these HTML tags and attributes:

<a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>

Este sitio usa Akismet para reducir el spam. Aprende cómo se procesan los datos de tus comentarios.