使用supervisor提高nodejs调试效率

简介:

如果你有PHP 开发经验,会习惯在修改PHP 脚本后直接刷新浏览器以观察结果,而你 
在开发Node.js 实现的HTTP 应用时会发现,无论你修改了代码的哪一部份,都必须终止 
Node.js 再重新运行才会奏效。这是因为Node.js 只有在第一次引用到某部份时才会去解析脚 
本文件,以后都会直接访问内存,避免重复载入,而PHP 则总是重新读取并解析脚本(如 
果没有专门的优化配置)。Node.js的这种设计虽然有利于提高性能,却不利于开发调试,因 
为我们在开发过程中总是希望修改后立即看到效果,而不是每次都要终止进程并重启。 
supervisor 可以帮助你实现这个功能,它会监视你对代码的改动,并自动重启Node.js。 
使用方法很简单,首先使用npm 安装supervisor: 
$ npm install -g supervisor

如果你使用的是Linux 或Mac,直接键入上面的命令很可能会有权限错误。原因是npm 
需要把supervisor 安装到系统目录,需要管理员授权,可以使用 sudo npm install -g 
supervisor 命令来安装。 
接下来,使用supervisor 命令启动app.js: 

复制代码
$ supervisor app.js 
DEBUG: Running node-supervisor with 
DEBUG: program 'app.js' 
DEBUG: --watch '.' 
DEBUG: --extensions 'node|js' 
DEBUG: --exec 'node' 
DEBUG: Starting child process with 'node app.js' 
DEBUG: Watching directory '/home/byvoid/.' forchanges. 
HTTP server is listening at port 3000.
复制代码

当代码被改动时,运行的脚本会被终止,然后重新启动。在终端中显示的结果如下: 

DEBUG: crashing child 
DEBUG: Starting child process with 'node app.js' 
HTTP server is listening at port 3000. 
supervisor 这个小工具可以解决开发中的调试问题。

 

3.2 异步式I/O 与事件式编程

supervisor的安装也很简单:

直接用npm安装既可,键入命令: npm -g install supervisor

这里注意一点的就是,supervisor必须安装到全局,如果你不安装到全局,错误命令会提示你安装到全局。

如果不想安装到默认的全局,也可以自己修改全局路径到当前路径

npm config set prefix "路径"

安装完以后就可以用supervisor 来启动服务了。

supervisor app.js

启动完全是这个样子

 

修改一下,然后刷新


本文转自艾伦 Aaron博客园博客,原文链接:http://www.cnblogs.com/aaronjs/p/3745218.html,如需转载请自行联系原作者
相关文章
|
JavaScript 数据库 Windows
nodejs 将node命令启动为windows服务运行(node-windows使用)
nodejs 将node命令启动为windows服务运行(node-windows使用)
nodejs 将node命令启动为windows服务运行(node-windows使用)
|
3月前
|
JavaScript 前端开发 API
Node中的AsyncLocalStorage 使用问题之AsyncHook 的 enable 方法工作的问题如何解决
Node中的AsyncLocalStorage 使用问题之AsyncHook 的 enable 方法工作的问题如何解决
|
5月前
node安装常用工具
node安装常用工具
29 0
|
5月前
|
JavaScript Linux 开发工具
【服务器】安装Node.js开发环境
【服务器】安装Node.js开发环境
98 1
|
5月前
|
前端开发 JavaScript
node-sass与node版本不匹配问题解决方法
node-sass与node版本不匹配问题解决方法
583 0
|
5月前
|
JavaScript 前端开发 Java
Node CLI工具原理解析(1)
前言 CLI(Command-Line Interface) 命令行界面 搞开发的同学,或多或少的都会接触到许多的命令行工具。 有生产力工具,也有有意思的小玩意、自动化任务处理等等。 命令行工具的安装方式就很多了。
|
5月前
|
JavaScript
Node CLI工具原理解析(2)
使用npm install安装依赖,会根据bin中的描述,创建1个command到exec/filepath.js的软链 软链所在目录区别于是否是global安装 这个目录可以通过npm bin指令查看
|
JSON 资源调度 负载均衡
这可能是你见过最全的Node.js应用程序管理与部署:使用PM2进行进程管理
node是单线程应用,单线程最大的弊端就是无法利用多核CPU带来的优势来提升运行效率。 pm2(process manager)是一个进程管理工具,可以用它来管理node进程,负责所有的node进程,并查看node进程的状态,也支持性能监控,负载均衡等功能。
458 0
这可能是你见过最全的Node.js应用程序管理与部署:使用PM2进行进程管理
|
运维 监控 JavaScript
Node.js躬行记(22)——Node环境升级日志
Node.js躬行记(22)——Node环境升级日志
|
存储 缓存 负载均衡
重学Node系列04-进程及集群相关
创建进程 相信大家耳边听烂的一句话就是“JavaScript是单线程的”,为了弥补面对单线程对多核使用不足的问题,node很方便的提供了几个创建进程的方法:
69 0