2016-05-05 4 views
0

Я довольно новичок в Node.js. Я хотел бы «посмотреть» файл, содержащий некоторые параметры, чтобы иметь возможность перезагрузить его автоматически при внесении изменений.Часы Chodikar работают только один раз

Я попытался с fs.watch, но он возвращался слишком много события, так что теперь я пытаюсь с «» сторожем

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 и я установил сторож сегодня

Что я делаю неправильно?

ответ

1

Я протестировал код, который вы отправили на linux, и он отлично работает.

Я советую вам добавить на слушателе событий ошибки следующим образом:

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

+0

Я перезагрузил свой сервер, и теперь все в порядке. Я знаю, что какая-то часть не работает под Linux, но мне действительно нужно только посмотреть один или два файла, так что все должно быть в порядке. Спасибо за строку 'error' – ericc