如果文件中有更新,如何从nodejs中的fs.watch获取更新数据

时间:2015-09-28 14:21:05

标签: node.js csv watch fs

我正在尝试从文件中获取更新数据,当文件发生变化时我正在使用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");

1 个答案:

答案 0 :(得分:0)

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

扩展stream.Readable并在fs.watch事件发生时使用stream.read(0)执行change。如果您决定自己实施EOF,删除文件等,还有很多工作要做。