📅  最后修改于: 2023-12-03 15:17:54.493000             🧑  作者: Mango
在 Node.js 中,fs.watch() 方法用于监视文件或目录的变化,当被监视的文件或目录发生变化时,会触发相应的事件。这个方法是 Node.js 文件系统模块(fs)中的一部分,并且是异步的。
fs.watch(filename[, options][, listener])
true
表示持久性监视,false
表示一次性监视。默认为 true
。true
表示递归监视子目录。默认为 false
。fs.watch() 方法返回一个 fs.FSWatcher 对象,它继承自 EventEmitter,并且会触发以下事件:
以下是一个简单的示例,演示如何使用 fs.watch() 方法监视文件的变化:
const fs = require('fs');
// 监视文件 changes.txt
const watcher = fs.watch('changes.txt', { persistent: true, recursive: false }, (eventType, filename) => {
console.log(`Event type: ${eventType}`);
console.log(`File name: ${filename}`);
});
// 监听 change 事件
watcher.on('change', (eventType, filename) => {
console.log(`Event type: ${eventType}`);
console.log(`File name: ${filename}`);
});
// 监听 error 事件
watcher.on('error', (error) => {
console.error(`Watcher error: ${error}`);
});
以上代码创建了一个文件监视器,监视名为 "changes.txt" 的文件的变化。每当文件发生变化时,控制台将打印出事件类型和文件名。如果在监视过程中出现错误,错误信息将被打印到控制台。
fs.watch() 方法是 Node.js 文件系统模块提供的一个用于监视文件或目录变化的功能。它提供了对文件变化的监听,并能够触发相应的事件。使用 fs.watch() 方法可以在文件发生变化时执行自定义的逻辑,方便程序员对文件系统的变化进行处理。但需要注意,fs.watch() 方法的行为可能在不同的操作系统上有所不同,某些操作系统的特性可能会影响到其准确性和可靠性。