2017-03-06 10 views
0

ノードJSに私のコードがありますが、どのように複数の.write()コマンドを実行できますか?このコードの出力はtest.xlsファイルを作成します。そのファイルを開くと、ヘッダ( "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の" されていますか? 1つの文字列 'var header =" Sl No \ tAge \ tName \ n ";'にすべてを埋め込むことができます。 – jfriend00

+0

あなたはそれらがすべてファイル内にあるわけではありませんか?どのようにファイルを見ていますか?また、これは '['header'、 'row1'、 'row2']。join( '\ t')'を何もしません。それはなぜそこにあるのですか? – jfriend00

+0

ああ申し訳ありません。私のコードを整理するだけです –

答えて

1

をそれらのすべてを表示するようにしたいです

.endを使用して
writeStream.write(header + '\n' + row1 + '\n' + row2); 
writeStream.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

関連する問題