NodeJS管道从可读到文件writeStream不起作用

时间:2016-05-31 03:17:08

标签: javascript node.js

我想将内容传递给文件。这是我写的:

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();

我希望xfiles.txt有3行' foo bar baz'。但输出告诉我写了0个字节,当我检查xfiles.txt时它是空的。

我想念什么?

修改

抱歉,在发布此问题后立即找到答案。 this SO question中的答案解决了我的问题。

1 个答案:

答案 0 :(得分:0)

在发布此问题后立即找到答案。 This SO question的答案也解决了我的问题。

我要做的是在流完成异步操作后调用ws.end()。所以我必须把它放在回调中:

ws.on('end', function() {
    ws.end();
});