Está en la página 1de 3

Qu es Node.js?

Node.js es una plataforma Javascript que ha tenido mucho eco ltimamente en el ambiente de desarrollo
de aplicaciones web, est construido sobre V8, los runtimes para Javascript de Google. Algunos de los
puntos importantes sobre Node.js es que, a pesar de ser una librera Javascript, los scripts Node.js
estn diseados para correr del lado del servidor brindando todas la ventajas de la programacin
orientada a eventos event-driven propia de Javascript adems de un rendimiento bastante bueno al
momento de la ejecucin.
Pre requisitos: Node.js y npm
Antes de comenzar con la codificacin de nuestro servidor web, requerimos instalar un par de paquetes
en nuestro equipo:
Node.js: La plataforma Javascript
npm: Node Package Manager, el manejador de paquetes de Node.js
Para nuestra buena fortuna, casi todas las distribuciones Linux ya vienen con el paquete
llamado nodejs en los repositorios; en caso de querer instalar una versin diferente a la proveniente del
repositorio, pueden descargarlo aqu. Adems, npm ya viene instalado en versiones resientes de
Node.js, entonces, si llegaste a esta lnea del post, ya tienes todo listo para levantar tu primer servidor
web en Javascript (Yei!).
Configuracin del proyecto: package.json
Todo proyecto Node requiere tener un archivo de configuracin, el cual nos da la definicin de paquetes y
versiones a utilizar en el proyecto. Para este post utilizaremos el paquete express, ya sea que queramos
desarrollar un pequeo servidor web o una robusta API, express nos ser til.
El archivo package.json queda como sigue y creo que se explica por s mismo:
{
"name": "miWebServer",
"description": "Servidor web de prueba",
"version": "1.0.0",
"dependencies": {
"express": "3.x"
}
}
El nodo ms importante es el dependencies, indicando paquetes y versiones, para los que
utilizamos Ruby on Rails, este nodo cumplira una funcin similar al archivo Gemfile de bundler.
Con nuestro archivo de configuracin creado, basta con pedirle (amablemente) a Node Package
Manager que instale las dependencias de nuestro proyecto:
npm install
sto crear un directorio llamado node_modules donde se instalarn las dependencias de nuestro
proyecto; si no me crees, puedes correr el comando npm ls para ver el rbol de dependencias de tu
nuevo proyecto:
$ npm ls
miWebServer@1.0.0 /home/fernando/logicalbricks/dev/js/mi_web_server
express@3.1.0
buffer-crc32@0.1.1
commander@0.6.1
connect@2.7.2
bytes@0.1.0
formidable@1.0.11
pause@0.0.1
qs@0.5.1
cookie@0.0.5
cookie-signature@0.0.1
debug@0.7.2
fresh@0.1.0
methods@0.0.1
mkdirp@0.3.3
range-parser@0.0.4
send@0.1.0
mime@1.2.6
Servidor web: server.js
Crear nuestro pequeo servidor web es tan fcil como importar, crear, rutear y escuchar, aqu el script
para realizar estos cuatro pasos:
1. // importar
2. var express = require('express');
3.
4. // instanciar
5. var app = express();
6.
7. // ruteo
8. app.get('/', function(req, res){
9. res.sendfile(__dirname + '/public/index.html');
10. });
11. app.get('/about', function(req, res){
12. res.sendfile(__dirname + '/public/about.html');
13. });
14.
15. // escuchar
16. app.listen(9000);
17.
18. console.log("Servidor Express escuchando en modo %s",
app.settings.env);
Por ltimo, el comando a ejecutar desde consola para ver nuestro script en ejecucin:
$ node server.js
El script anterior lanzar una aplicacin escuchando al puerto 9000 y responder a las siguientes URLs:
http://localhost:9000/
http://localhost:9000/about
La magia est en la seccin de ruteo, la funcin get recibe como primer parmetro la ruta a parsear, y
como segundo parmetro una funcin de callback que recibe el objeto del request y la respuesta res que
devolveremos al navegador. En esta funcin de callback podemos hacer cualquier procesamiento
necesario para generar una respuesta, la cual deber ser cargada sobre el objeto res. A continuacin
unos ejemplos de respuestas:
Respuesta en texto
Parsea la url /hola.txt y devuelve respuesta en texto
app.get('/hola.txt', function(req, res){
res.send('Hola mundo');
});
Respuesta en html
Parsea la url /hola.html y devuelve respuesta en html cargada desde el archivo 'hola.html'
app.get('/hola.html', function(req, res){
res.sendfile(__dirname + '/hola.html');
});
Respuesta en JSON
Parsea la url /hola.json y devuelve respuesta en formato JSON cargada desde el archivo 'hola.json'
app.get('/hola.json', function(req, res){
// Indicamos el tipo de contenido a devolver en las cabeceras de
nuestra respuesta
res.contentType('application/json');
res.sendfile(__dirname + '/hola.json');
});