有没有一种方法可以从持续更新的文件中读取仅在nodejs中的新更新

时间:2019-03-25 11:18:45

标签: javascript node.js filestream

我有一个不断更新的日志文件,并添加了其他数据。我正在尝试从此文件中读取以[rosout]开头的特定行,我想显示在我第一次读取文件后添加的任何数据。

我所做的是,我创建了一个数组,并声明了一个if条件,仅添加了我想要的日志,并且该日志可以正常工作,并且还放置了watch方法,以便在文件更新时执行我的功能。但是在仅添加新日志时遇到了麻烦,我在添加到数组之前尝试使用array.includes(读取行),但是没有用。

fs.watch('filepath', (eventType, filename) => {
 var readline= require('readline');
 var stream= require('stream');
 var instream = fs.createReadStream('filepath');
 var outstream= new stream();
 var rl= readline.createInterface(instream,outstream);
 var errors=[];
var error=false;

rl.on('line', function(line){
error=line.includes("rosout")
if(error==true){
if(!errors.includes("line")){
 errors.push(line); 
console.log(errors.join("\r\n"));
}}
});
});

我希望输出为以rosout开头的日志数据,并且仅在文件更新时才以其他数据更新。

0 个答案:

没有答案