在开发nodejs程序,调试的时候,无论你修改了代码的哪一部分,都需要重启服务才能生效。这是因为 Node.js 只有在第一次引用到某部份时才会去解析脚本文件,以后都会直接访问内存,避免重复载入。Node.js的这种设计虽然有利于提高性能,却不利于开发调试,因为我们在开发过程中总是希望修改后立即看到效果,而不是每次都要终止进程并重启。supervisor 可以帮助你实现这个功能,它会监视你对代码的改动,并自动重启 Node.js。
例如:app.js
var http = require('http');
var url = require('url');
http.createServer(function(request, response){
response.writeHead(200,{'Content-Type':'text/plain'});
var params = url.parse(request.url, true).query;
var input = params.number;
var numInput = new Number(input);
var numOutput = new Number(Math.random() * numInput).toFixed(0);
input = input+"";
response.write(numOutput);
response.end();
}).listen(8124);
console.log('Random Number Generator');
把app.js保存到D盘,打开dos,执行node app.js 然后打开浏览器输入 http://127.0.0.1:8124/?number=11 可以看到结果。修改app.js后,刷新浏览器,发现没有变化,需要重新使用node app.js 重启服务,然后再刷新。
安装supervisor:
直接用npm安装既可,键入命令: npm -g install supervisor 这里注意一点的就是,supervisor必须安装到全局,如果你不安装到全局,错误命令会提示你安装到全局。如果不想安装到默认的全局,也可以自己修改全局路径到当前路径 npm config set prefix "路径"
使用supervisor启动app.js
切换到D盘,执行 supervisor app.js
然后修改app.js,刷新浏览器可以看到会实时生效,不用重启。