在 fs.watch() 中混淆 node.js 中的回调函数

confuse in fs.watch() callback function in node.js

fs.watch('./tmp', {encoding: 'buffer'}, (eventType, filename) => {
  if (filename)
    console.log(filename);
    // Prints: <Buffer ...>
});

它是从 node.js file system 's Class: fs.FSWatcher 文档

复制的

文档描述 eventTypestring 类型,可以是 'change''rename' 所以我写的代码如下

fs.watch('./public/dir',function('change','xx.txt'){
    console.log('file changed');
});

但是 SyntaxError: 意外的字符串

我不明白什么是 eventTypefilename

请描述它是什么。

侦听器回调有两个参数(eventType、文件名)。 eventType 是 'rename' 或 'change'.

Filename 是触发事件的文件名。来自文档。 https://nodejs.org/api/fs.html#fs_fs_watch_filename_options_listener

eventType, filename <- 它只是来自侦听器的回调变量。

要修复你需要这样做。

fs.watch('./public/dir',function(typeOfEvent, nameOfFile){
    console.log(typeOfEvent);
    console.log(nameOfFile);
});

希望对您有所帮助。