Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/395.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
Javascript NodeJS调用函数时,一个txt。文件已更新_Javascript_Node.js_Stream - Fatal编程技术网

Javascript NodeJS调用函数时,一个txt。文件已更新

Javascript NodeJS调用函数时,一个txt。文件已更新,javascript,node.js,stream,Javascript,Node.js,Stream,我试图在NodeJS中实现以下目标: 监视.txt文件,以便在对其应用任何更改时,将触发回调函数 现在我知道了如何通过流读取文本文件。例如: var fs = require('fs'); var data = ''; var readStream = fs.createReadStream('my-file.txt', 'utf8'); readStream.on('data', function(chunk) { data += chunk; }).on('end', func

我试图在NodeJS中实现以下目标:

监视
.txt
文件,以便在对其应用任何更改时,将触发回调函数

现在我知道了如何通过流读取文本文件。例如:

var fs = require('fs');

var data = '';

var readStream = fs.createReadStream('my-file.txt', 'utf8');

readStream.on('data', function(chunk) {
    data += chunk;
}).on('end', function() {
    console.log(data);
});
但是这段代码只读取一次
.txt
文件。是否可以继续监视它?

您可以使用-


常数fs=要求('fs');
fs.watch('text.txt',函数(事件类型,文件名){
log('文件已更新');
});

您可以使用chokidar npm模块进行监控。


在这里添加
fs.watch
API有一些警告和不一致性,就像使用
fs.writeFile
触发两个事件一样,一个用于打开,一个用于写入。阅读更多:&
// Initialize watcher.
const watcher = chokidar.watch('my-file.txt', {
  ignored: /(^|[\/\\])\../,
  persistent: true
});

// Something to use when events are received.
const log = console.log.bind(console);

// Add event listeners.
 watcher
  .on('add', path => log(`File ${path} has been added`))
  .on('change', path => log(`File ${path} has been changed`))
  .on('unlink', path => log(`File ${path} has been removed`))
  .on('addDir', path => log(`Directory ${path} has been added`))
  .on('unlinkDir', path => log(`Directory ${path} has been removed`))
  .on('error', error => log(`Watcher error: ${error}`))
  .on('ready', () => log('Initial scan complete. Ready for changes'))
  .on('raw', (event, path, details) => { // internal
    log('Raw event info:', event, path, details);
  });