Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/codeigniter/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Node.js 通过Mac OSX上的节点0.5.9观看fs.watch_Node.js_Kqueue - Fatal编程技术网

Node.js 通过Mac OSX上的节点0.5.9观看fs.watch

Node.js 通过Mac OSX上的节点0.5.9观看fs.watch,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新文件夹-->{'0':'rename','1':n

我正在节点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新文件夹
    -->
    {'0':'rename','1':null}
  • >新建文件夹/文件2
    -->无事件触发/输出
  • 触摸文件1
    -->无事件触发/输出
  • rm文件1
    -->
    {'0':'rename','1':null}
我注意到两件似乎不正确的事情:子目录(
new_folder
)未被监视,对监视文件的更新/修改不会触发
更改
事件。查看节点代码和测试,似乎这些都是可能的

那么,可以让fs.watch查看目录及其所有子目录吗?是否至少可以从文件修改中获取事件?另外,据我所知,
fs.watch
kqueue
支持,它绑定到一个
eventid
(在OSX中),是否可以获得该
eventid

注意:我特别使用的是
fs.watch
而不是
fs.watchFile
,因为我需要监视整个目录(最好也是它的所有子目录:)


谢谢你的帮助

此问题不再出现在最新的节点版本中。但是,
fs.watch
中还有其他几个bug,因此您可能希望在解决这些bug之前暂缓使用它:

0.5.9不稳定。可以在github中添加一个bug,并提供一个更详细的示例。您可以使用Isaact的“Supervisor”此问题报告在,并且至少在稳定的0.6.0下部分修复。感谢链接Trevor!一旦有机会升级到0.6.0,我将尝试将结果发布到该线程…:)改用这个: