fs.просмотр через узел 0.5.9 на Mac OSX

#node.js #kqueue

#node.js #kqueue

Вопрос:

Я запускаю следующее на узле v0.5.9:

 var fs = require("fs");
fs.watch("/Users/username/testingFsWatcher/",function(event,file) {
  console.dir(arguments);
});
  

Затем я делаю:

  • cd /Users/username/testingFsWatcher/
  • >file1 —> { '0': 'rename', '1': null }
  • mkdir new_folder —> { '0': 'rename', '1': null }
  • >new_folder/file2 —> событие не инициировано / не выведено
  • touch file1 —> событие не инициировано / не выведено
  • rm file1 —> { '0': 'rename', '1': null }

Я заметил две вещи, которые кажутся неправильными: subdirectories ( new_folder ) не просматриваются, а обновления / модификации просматриваемых файлов не вызывают change событие. Просматривая код узла и тесты, кажется, что это должно быть возможно.

Итак, возможно fs.watch ли просмотреть каталог и все его подкаталоги? Возможно ли, по крайней мере, получить событие от модификации файла? Кроме того, из того, что я могу сказать, fs.watch поддерживается kqueue , который привязан к eventid (в OSX), возможно ли это получить eventid ?

Примечание: я специально использую fs.watch , а не fs.watchFile потому, что мне нужно просматривать весь каталог (желательно, все его подкаталоги тоже :).

Спасибо за помощь!

Комментарии:

1. 0.5.9 не является стабильным. Не стесняйтесь добавлять ошибку в github с более подробным примером. Вы могли бы использовать «Супервизор» от Isaac

2. Об этой проблеме сообщается на github.com/joyent/node/issues/1986 , и, по крайней мере, частично исправлен в стабильной версии 0.6.0.

3. Спасибо за ссылку, Тревор! Я постараюсь опубликовать свои результаты в этой теме, как только у меня появится возможность обновиться до 0.6.0 … 🙂

4. Вместо этого используйте это: npmjs.org/package/node-watch

Ответ №1:

Эта проблема больше не появляется в последней версии Node. Тем не менее, есть несколько других оставшихся ошибок fs.watch , поэтому вы можете отложить их использование до тех пор, пока они не будут устранены: https://github.com/joyent/node/issues/search?q=fs.watch