开发辅助工具:$ supervisor app.js
supervisor 会监视你对代码的改动,并自动重启 Node.js
如果你有 PHP
开发经验,会习惯在修改 PHP 脚本后直接刷新浏览器以观察结果,而你
在开发
Node.js 实现的 HTTP 应用时会发现,无论你修改了代码的哪一部份,都必须终止
Node.js
再重新运行才会奏效。这是因为 Node.js 只有在第一次引用到某部份时才会去解析脚
本文件,以后都会直接访问内存,避免重复载入,而
PHP 则总是重新读取并解析脚本(如
果没有专门的优化配置)。Node.js的这种设计虽然有利于提高性能,却不利于开发调试,因
为我们在开发过程中总是希望修改后立即看到效果,而不是每次都要终止进程并重启。
使用 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/.‘ for changes. 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 这个小工具可以解决开发中的调试问题。
创建模块
Node.js 提供了 exports 和 require 两个对象,其中 exports 是模块公开的接口,require 用于从外部获取一个模块的接口,即所获取模块的 exports 对象。