【问题标题】:how to get updated data from fs.watch in nodejs when ever there is update in file当文件中有更新时,如何从nodejs中的fs.watch获取更新的数据
【发布时间】:2015-12-25 20:02:34
【问题描述】:

我正在尝试从文件中获取更新的数据,当我使用 fs.watch 来观察更改时,我正在尝试从文件中获取更新的数据,但是如何获取更新的数据以便我可以将 csv 解析为 json

nodejs代码:

var express=require("express");
var app=express();

var http = require('http');
var fs = require('fs');
 var Converter = require("csvtojson").Converter;
var converter = new Converter({constructResult:false});

fs.createReadStream("test.xlsx").pipe(converter);
//record_parsed will be emitted each csv row being processed 
converter.on("record_parsed", function (jsonObj) {
   console.log(jsonObj); //here is your result json obje

app.get("/",function(req,res)
{
 console.log("listening\n");
 fs.watch('test.csv', function (event, filename) {
  console.log('event is: ' + event);

//record_parsed will be emitted each csv row being processed 
converter.on("record_parsed", function (jsonObj) {
   console.log(jsonObj); //here is your result json object 
});
});

});

 app.listen(8180);
 console.log("running");

【问题讨论】:

    标签: node.js csv watch fs


    【解决方案1】:

    您可以考虑使用tail-stream 或至少看看它的源代码。

    它扩展stream.Readable 并在change 事件发生时使用fs.watch 执行stream.read(0)。尽管如此,如果您决定自己实现它,还有很多工作要正确处理 EOF、文件删除等。

    【讨论】:

    • 你能提供任何示例代码或任何参考,我可以实现这一点以及如何处理 EOF!
    • 所以这个尾流会给出更新的数据,比如如果我在文件中添加了一个新行,那么这个新数据将由尾流给出,对吗?跨度>
    • tail-stream 没有打印最后一条记录是这种行为吗?
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-12-30
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-10-17
    • 2021-12-17
    相关资源
    最近更新 更多