如何继续在同一个csv文件上写?

时间:2016-11-03 17:11:44

标签: javascript node.js csv npm cron

我使用这个nodejs package来每分钟将一些数据写入CSV文件,到目前为止,文件的创建还可以,第一次写入是正常的,但是当它出现时再次写在同一个文件nodejs上的时间会引发我的错误,我试图四处寻找解决方案,但我没有找到任何东西,希望有人可以帮助我。我将发布我现在所拥有的内容

var cronCSV = require('node-schedule');
var csvWriter = require('csv-write-stream');
var writer = csvWriter({sendHeaders: false});
var ruleCSV = new cron.RecurrenceRule();
ruleCSV.second = 1;
const fs = require('fs');
writer.pipe(fs.createWriteStream('out.csv'))
//SOME OTHER CODE

    cronCSV.scheduleJob(ruleCSV, function(){

        writer.write({hPerc: hPerc, humidity: humidity});
        writer.end();
        console.log("Scritto su CSV");
    });

错误:

_stream_readable.js:501
  dest.on('unpipe', onunpipe);
      ^

TypeError: Cannot read property 'on' of undefined
    at CsvWriteStream.Readable.pipe (_stream_readable.js:501:7)
    at Job.job (/home/pi/node_led/main.js:64:10)
    at Job.invoke (/home/pi/node_led/node_modules/node-schedule/lib/schedule.js:175:10)
    at Timeout._onTimeout (/home/pi/node_led/node_modules/node-schedule/lib/schedule.js:479:11)
    at ontimeout (timers.js:365:14)
    at tryOnTimeout (timers.js:237:5)
    at Timer.listOnTimeout (timers.js:207:5)

1 个答案:

答案 0 :(得分:1)

在第一次(以及每次)写入管道之后,您正在关闭管道:

您应该删除此行:

writer.end();

如果该过程打算在任何时候完成,那么在此之前执行它是个好主意。但是,当你期望多次写信时,情况并非如此。