无法获取节点流的完成事件

时间:2014-04-10 01:38:38

标签: node.js stream

我正在尝试确定写入节点WriteStream的时间:

var gfs = GFS(db);

var writeStream = gfs.createWriteStream(
{
    filename: "thismyfile.txt",
    root: "myfiles"
});

writeStream.on("finish", function()
{
    console.log("finished");
    response.send({ Success: true });
});

writeStream.write("this might work");
writeStream.end();

console.log("end");

在我的控制台中,我看到“结束”,但从未“完成”,并且从未有过回应。然而,流正在正确写入,它似乎正在完成(我在数据库中看到完成的文件)。即使只是不开火。我已经尝试将“这可能工作”移动到调用end()并删除write(),我也尝试将字符串传递给end()。该字符串被写入流,但仍然没有回调。

为什么这个事件不会被解雇?

谢谢。

1 个答案:

答案 0 :(得分:1)

gridfs-stream模块的设计和编写主要针对节点0.8.x及以下,并且不使用节点> = {stream2中提供的require('stream').WritableStream样式方法{1}}。因此,它没有获得标准化的0.10.x事件。由模块实现本身来发出finish,它显然没有。