Chodikar手表只工作一次

时间:2016-05-05 18:59:39

标签: javascript node.js

我对Node.js很新。 我想“观察”包含一些参数的文件,以便在进行更改时自动重新加载。

我尝试使用fs.watch,但它返回了太多事件,所以我现在尝试使用'chokidar'

console.log('Server running');
var chokidar = require('chokidar');
var watcher = chokidar.watch('test.txt',{ persistent: true });
watcher.on("change", function(path) {
    var d = new Date();
    var n = d.toUTCString();
    console.log(n + " : start update");
    console.log(path + " was changed");
});

问题是它只能运作一次!!当我修改文件'test.txt'时,我第一次在控制台上显示消息,但之后再也没有! 好像观察者在第一次事件后被移除了......

服务器在Linux下运行,我今天安装了chokidar

我做错了什么?

1 个答案:

答案 0 :(得分:1)

我已经测试了你在linux上提交的代码并且工作正常。

我建议你按如下方式添加on error事件监听器:

console.log('Server running'); 
var chokidar = require('chokidar'); 
var watcher = chokidar.watch('test.txt',{ persistent: true });     
watcher.on("change", function(path) {
var d = new Date();
    var n = d.toUTCString();
    console.log(n + " : start update");
    console.log(path + " was changed"); }); 
watcher.on('error', error => log(`Watcher error: ${error}`))

请注意,并非所有测试都通过了此模块的linux和mac os:

enter image description here