2016-05-31 5 views
0

コンテンツをファイルにパイプしたい。ここで私が書いたものだ:NodeJSから読み取り可能なファイルへのパイプライトwriteStreamが動作しない

var fs = require('fs'); 
var Readable = require('stream').Readable; 

var ws = fs.createWriteStream('xfiles.txt'); 
var rs = new Readable; 

ws.on('finish', function() { 
    console.log('Written ' + ws.bytesWritten + ' ' + ws.path); 
}); 

rs.push('foo bar baz'); 
rs.push('foo bar baz'); 
rs.push('foo bar baz'); 
rs.push(null); 

rs.pipe(ws); 
ws.end(); 

私は「fooのバーバズ」の3行を持つことがxfiles.txtを期待。しかし、出力は0バイトが書かれていることを私に伝え、xfiles.txtをチェックすると空です。

私は何が間違っていますか?

EDIT

申し訳ありませんが、右のこの質問を投稿した後、答えを見つけました。 this SO questionの答えが私の問題を解決しました。

答えて

0

この質問を投稿した直後に回答が見つかりました。 This SO questionも私の問題を解決した答えを持っています。

ストリームが非同期操作を完了した後にws.end()を呼び出すことです。だから私はコールバックの中に入れなければならない:

ws.on('end', function() { 
    ws.end(); 
}); 
関連する問題