我使用这个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)
答案 0 :(得分:1)
在第一次(以及每次)写入管道之后,您正在关闭管道:
您应该删除此行:
writer.end();
如果该过程打算在任何时候完成,那么在此之前执行它是个好主意。但是,当你期望多次写信时,情况并非如此。