2016-11-03 2 views
0

毎分CSVファイルにデータを書き込むために、これはnodejs packageを使用していますが、これまでのところ、ファイルの作成はOKです。初めての書き込みはOKですが、もう一度同じファイルnodejsが私にエラーを投げます、私は解決策を見回そうとしましたが、私は何も言いませんでした。誰かが私を助けてくれることを願っています。同じ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

"throws me error" - エラーメッセージには何が表示されますか? – Quentin

+0

@Quentinは今エラーを含むように質問を編集しました;) – FabioEnne

答えて

1

あなただけ最初にそれを書いた後、パイプを閉じている(それぞれ)時間:

あなたがすべき私は今

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"); 
    }); 

とエラー持っているものを投稿しますこの行を削除してください:

writer.end(); 

このプロセスはいつでも終了するように設定されている場合は、実行することをお勧めしますそれをその直前にしてください。しかし、あなたがそれ以上の時間を書くことを期待していないとき。

+1

私はそのような愚かな質問をしました。答えが見つからなかったのです。ありがとうございました – FabioEnne

+0

私は "writer.pipe(fs.createWriteStream ( 'out.csv')) "私は停止し、アプリケーションを実行するたびにCSVファイルの内容を削除します。それを防止する方法はありますか? – FabioEnne

+0

ファイルを書き込みの代わりに追加モードで開くことができます。私はストリームでどうやって行うのか分からないが、それにアプローチする方法はあると確信している。私が見る問題は、csvWriterはヘッダー(ファイル内のデータ行と見なされます)を再び挿入することです。ところで、csvWriterにはおそらくそれを回避するオプションがあります。存在する場合は、ファイルが存在するかどうかをチェックして、ヘッダーを生成する必要があるかどうかを判断できます。 – bitifet

関連する問題