NodeJS es el lenguaje con el que desarrollar microservicios que esta de moda. Y no es para menos, es altamente escalable, muy rápido y ligero(Linkedin pasó de 15 a solo 4 servidores usando esta tecnología). Además, se integra de lujo con otras tecnologías de este tipo tanto del lado servidor como MongoDB como del lado front-end como AngularJS.
En este mini-tutorial vamos a ver como instalar Node.js en un servidor Ubuntu y crearemos nuestra primera aplicación que utilizará los módulos ‘express‘(Infraestructura web rápida, minimalista y flexible) y ‘mysql'(Para connectar con bases de datos MySql).
Instalamos NodeJS en Ubuntu
Podemos instalar Node.js simplemente usando dos comandos:
curl -sL https://deb.nodesource.com/setup_5.x | sudo -E bash - sudo apt-get install -y nodejs
Creamos nuestra primera aplicación
Mediante NPM(Gestor de paquetes Javascript) creamos nuestra primera aplicación:
npm init
Esto nos creará el fichero ‘package.json’ con la información de nuestra aplicación. Ahora vamos a instalar los paquetes ‘express’ y ‘mysql’, que vamos a usar(El parámetro –save es para guardarlo como dependencia):
npm install express –save npm install mysql --save
Ahora crearemos nuestra aplicación, en mi caso, le he dicho que su fichero principal seria ‘app.js’:
var express = require('express'); var mysql = require('mysql'); var app = express(); var connection = mysql.createConnection({ host : '127.0.0.1', user : 'xxx', password : '', database : 'xxx' }); connection.connect(); app.get('/', function (req, res) { connection.query('SELECT * FROM Layout LIMIT 10', function(err, rows, fields) { var s=""; for ( var i=0; i<rows.length; i++ ) s+='<p>'+rows[i].friendlyURL+'(created '+rows[i].createDate+')</p>'; res.end( s ); }); }); app.listen(3000, function () { console.log('Sistema armado en el puerto 3000!'); });
Ahora ya solo tenemos que arrancar la aplicación y la tendremos escuchando por el puerto 3000(Que es donde le hemos dicho en la aplicación):
node app.js
Vemos como arranca la aplicación en segundos y como el hilo casi no gasta memoria.