办理这个问题的方法之一是监测文件修正,然后重启运用。Node充分利用了非壅塞的I/O,非壅塞文件系统的APIs的一个属性是事宜监听器可以用于等待特定的事宜。为理解决这个问题,你可以为项目中的所有文件来设置文件系统的事宜处理器。那么,当文件修正时,你的事宜处理器便会重启这个项目。
Node在fs模块中供应一个API fs.watch来处理这个。在编写本书时,这个API是不稳定的——这意味着它可能在随后的Node版本会修正。我们看一下它如何在一个web运用中利用。下面展示了一个程序可以用于监测和重启一个大略的web做事器。
利用fs.watch来监测一个文件的修恰是轻微有些难明得,但是你可以利用fs.watchFile,这是基于文件轮询而非I/O事宜。上述代码的方法是node server.js开启web做事器进程——然后利用fs.watch来监测文件修正。开始和停滞进程是利用child_process核心模块来管理,kill方法可以用于停滞子进程在Mac OS中最好也利用watcher.close来停滞文件的监测,只管Node的文章解释了fs.watch该当是“持续的”。一旦这统统都处理好了,watch函数会递归调用来再次加载web做事器。
