2017-03-06 83 views
0

我在這裏我的代碼在節點JS,我怎麼能執行多個.write()命令?此代碼的輸出將創建一個test.xls文件,當我打開該文件時,它只顯示第一個writeStream.write,它是標題(「Sl No」+「\ t」+「Age」+「\ t」+ 「姓名」 + 「\ n」),我想所有的人(頭,ROW1,ROW2)一起執行所有,並顯示他們都在TEST.XLS文件如何執行多個.write()命令?

exports.post = function(req, res){ 
 

 
var writeStream = fs.createWriteStream("test.xls"); 
 
var header="Sl No"+"\t"+" Age"+"\t"+"Name"+"\n"; 
 
var row1 = "0"+"\t"+" 21"+"\t"+"Rob"+"\n"; 
 
var row2 = "1"+"\t"+" 22"+"\t"+"bob"+"\n"; 
 

 
writeStream.write(header); 
 
writeStream.write(row1); 
 
writeStream.write(row2); 
 
writeStream.close(); 
 
\t 
 
};

+0

你爲什麼要打破' 「\ t」 的'和' 「\ n」'分開?您可以將所有內容嵌入到一個字符串中'var header =「Sl No \ tAge \ tName \ n」;'。 – jfriend00

+0

你確定他們並不都在文件中嗎?你如何看待這個文件?此外,這沒有做任何事情'['header','row1','row2']。join('\ t')'。爲什麼在那裏? – jfriend00

+0

哦好吧對不起。即時通訊只是讓我的代碼組織 –

回答

1

的儘快將它們全部寫入是一個快速修復:

writeStream.write(header + '\n' + row1 + '\n' + row2); 
writeStream.close(); 

使用.end.close,因爲節點是異步的。從我的理解end等待所有可寫塊完成,close終止流。

writeStream.write(header); 
writeStream.write(row1); 
writeStream.write(row2); 
writeStream.end(); 
close and error events are emitted when a stream ends due to failure (e.g. stream.destroy()) 
end is emitted when a readable stream has no more data 

source

+0

謝謝!它的工作先生 –

+1

這是更多的解決辦法,而不是解釋爲什麼OP在他們的代碼中有問題。 – jfriend00