2016-11-03 4 views
0

매분마다 CSV 파일에 데이터를 쓰려면이 파일을 nodejs package으로 사용하고 있습니다. 지금까지는 파일 작성이 처음 이었지만 처음에는 쓰기가 좋았지 만 파일을 다시 작성해야 할 때가되었습니다. 같은 파일 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(); 

이 과정이 언제든지 끝나기를 원하면 execu 바로 그 전에 말하십시오. 그러나 당신이 그것에 더 많은 시간을 쓸 것으로 예상 할 때 아닙니다.

+1

바로 .. 어리석은 질문을했습니다. 대답을 찾을 수 없었습니다. 덕분에 대단히 감사했습니다. – FabioEnne

+0

"writer.pipe (fs.createWriteStream ('out.csv')) "중지하고 응용 프로그램을 실행할 때마다 CSV 파일의 내용을 삭제하십시오. – FabioEnne

+0

파일을 쓰기 대신 추가 모드로 열 수 있습니다. 스트림으로 어떻게해야할지 모르겠지만 접근 방법은 분명합니다. 내가 보는 문제는 csvWriter가 헤더 (파일의 데이터 행으로 간주 됨)를 다시 삽입한다는 것입니다. BTW, csvWriter 아마 그것을 피하기 위해 몇 가지 옵션이있을 것이다. 존재하는 경우, 헤더가 생성되어야하는지 여부를 결정하기 위해 파일이 존재하는지 여부를 점검 할 수 있습니다. – bitifet

관련 문제