一尘不染

如何在node.js中执行类似tail -f logfile.txt的处理?

node.js

tail -f logfile.txt 输出logfile.txt的最后10行,然后随着文件的增长继续输出附加的数据。

-f在node.js 中做零件的推荐方式是什么?

以下输出整个文件(忽略“显示最后10行”),然后退出。

var fs = require('fs');
var rs = fs.createReadStream('logfile.txt', { flags: 'r', encoding: 'utf8'});
rs.on('data', function(data) {
  console.log(data);
});

我知道事件循环正在退出,因为在流结束和关闭事件之后没有更多事件了-我很好奇继续监视流的最佳方法。


阅读 236

收藏
2020-07-07

共1个答案

一尘不染

做到这一点的标准方法是使用fs.watchFile

另外,您可以只使用node-tail模块,该模块在fs.watchFile内部使用并且已经为您完成了工作。这是直接从文档中使用它的示例:

Tail = require('tail').Tail;

tail = new Tail("fileToTail");

tail.on("line", function(data) {
  console.log(data);
});
2020-07-07