我正在使用这个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)
最佳答案
您在第一次(以及每次)写入管道后立即关闭管道:
您应该删除此行:
writer.end();
如果该进程打算在任何时间完成,那么最好在此之前执行它。但当您希望多次写入时就不会了。
关于javascript - 如何继续在同一个 csv 文件上写入?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40407492/