node.js, Programación

Instalando node.js, Express y MySQL en Linux

En este primer artículo sobre desarrollo con node.js, vamos a ver como instalar nuestro entorno de trabajo de node. Se asume que estamos usando Linux, que es el entorno de trabajo que mejor se lleva con node.js.

Vamos a comenzar instalando node.js, así como el servidor de MySQL y el módulo que necesitamos para la interacción entre node.js y MySQL. Primero, tenemos que instalar node.js en Linux. Para llevar esto a cabo, podemos hacerlo de dos formas:

  • Descargar node.js en un paquete precompilado para nuestra plataforma. Los podemos encontrar en descargas de node.js, bajaremos el paquete de Linux, para nuestra plataforma, sea 32 o 64 bits.
    • Una vez descargado, descomprimimos el paquete en una carpeta, y, dentro de /lib/, existe un fichero llamado node. Ejecuta la siguiente instrucción para comprobar que node está funcionando correctamente: ./node -v, y deberías ver una salida por consola que diga algo como: 4.5.4, o el número de versión de node.js que haya en ese momento.
    • Ya tenemos node funcionando, ahora tendría sentido crear un link simbólico para que podamos ejecutarlo desde cualquier carpeta.
  • Descargar el código fuente de node.js, compilarlo en nuestro ordenador. Para ello, debemos instalar previamente un grupo de paquetes. Para las siguientes instrucciones, se asume que se usa una distro basada en Debian (Ubuntu, Mint etc…)
    • Ejecutar lo siguiente para instalar los paquetes necesarios: sudo apt-get install build-essential g++ make
    • Con esos paquetes correctamente instalados, ve a la página de descargas de node.js. Uno de los vínculos a descargar es un paquete con el código fuente. Descargalo y descomprímelo en cualquier carpeta.
    • Dentro de la carpeta en la que lo has descomprimido, ejecuta: ./configure. Es importante que te fijes en la salida por pantalla de ese comando. Si te faltan librerías o dependencias para poder realizar la compilación del código, te informará de ello. En caso de que no te falte nada, ejecutar make. Y tomarte un rato largo, porque tarda.
    • Tras el proceso de compilación, ya tenemos node listo para instalarlo en nuestro ordenador. Para ello, ejecutamos el comando sudo make install.
    • Tras ello, ejecutamos node -v en una terminal, y deberíamos obtener el número de versión de node por pantalla.

Con eso, node.js queda instalado. A partir de aquí, vmaos a instalar dos módulos de node.js muy utilizados, que nos van a servir para empezar a desarrollar un API JSON. Sus nombres son express node-mysql. Para instalarlos, usaremos el gestor de paquetes que viene integraado en node.js, npm (Node Package Manager). Ejecutaremos lo siguiente, para instalar los paquetes: npm install express mysql

Y si todo funciona correctamente, los paquetes habrán quedado instalados. Para comprobar el correcto funcionamiento de ambos paquetes, ejecutaremos el siguiente programa:
 

var express = require('express');
var mysql = require('mysql');

var oApp = express();
var oMyConnection = mysql.createConnection({
	host: '[HOST_DB]',
	user: '[USER_DB]',
	password: '[PASSWORD_DB]'
});

oApp.get('/', function(oReq, oRes) {
	var sSQL = "SELECT CONCAT('Hola', ', mundo') AS frase";
	oMyConnection.query(sSQL, function(oError, oRows, oCols) {
		if(oError) {
			oRes.write(JSON.stringify({
				error: true,
				error_object: oError				
			}));
			oRes.end();
		} else {
			oRes.write(JSON.stringify(oRows));
			oRes.end();
		}
	});
});

oApp.listen(9005, function(oReq, oRes) {
	console.log('App Express MySQL en puerto 9005');	
});

Gauardamos el código anterior con el nombre de archivo app.js. Lo ejecutamos corriendo el siguiente comando: node app.js, y debería decir lo siguiente: App Express MySQL en puerto 9005. Si conectamos un navegador a la URL http://127.0.0.1:9005/, deberíamos recibir esto como respuesta:

[{"frase":"Hola, mundo"}]

Esto nos indica que la instalación de node, de los módulos requeridos y el script para ejecutarlos ha finalizado correctamente. En el siguiente tutorial vamos a ver como preparar el CRUD de una entidad cualquiera, usando para ello servicios web.

Leave a Comment

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