martes, 1 de noviembre de 2011

Republicación automática en node.js

A la hora de desarrollar es muy cómodo que nuestra aplicación se republique automáticamente cada vez que guardemos las modificaciones de un fichero de node.js. Para conseguir esto, lo más cómodo que he visto hasta ahora es utilizar supervisor (https://github.com/isaacs/node-supervisor).

Con supervisor la aplicación se volverá a cargar cada vez que se modifique un fichero .js o cada vez que la aplicación casque.

Para instalar supervisor utilizamos npm con el parámetro -g (global). La idea es tenerlo disponible en todos los desarrollos pero que no vaya integrado en ellos:

sudo npm install supervisor -g

Una vez instalado para que desplegar una app cada vez que modifiquemos solo hay que:

supervisor miapp.js

Así, pongamos que mi app.js tiene el siguiente código:

var http = require('http');
var port = 8080;
http.createServer(function (req, res) {
   res.writeHead(200, {'Content-Type': 'text/plain'});
   res.end('Hello Node.js\n');
}).listen(port);
console.log('Server running at port: ' + port);


En la consola veremos lo siguiente:

DEBUG: Running node-supervisor with 
DEBUG:   program 'miapp.js' 
DEBUG:   --watch '.' 
DEBUG:   --extensions 'node|js' 
DEBUG:   --exec 'node' 
DEBUG: Starting child process with 'node miapp.js' 
DEBUG: Watching directory '/Users/miusuario/Documents/.' for changes.
Server running at port: 8080

Cambiamos el puerto a 8081, guardamos y en la consola vemos:

DEBUG: crashing child 
DEBUG: Starting child process with 'node miapp.js'
Server running at port: 8081


Si accedemos con el navegador a http://localhost:8081 vemos que efectivamente el servidor a cambiado al nuevo puerto.

No hay comentarios:

Publicar un comentario