我正在尝试确定节点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");
在我的控制台中,我看到"结束",但从来没有"结束"过,也从来没有回应。然而,流写得很好,似乎正在完成(我在数据库中看到了完成的文件)。这根本就不是开火。我尝试过将"this may work"移到对end()的调用中,并删除write(),我还尝试过将字符串传递到end()中。该字符串被写入流,但仍然没有回调。
为什么这个活动不会被解雇?
谢谢。
gridfs-stream
模块主要为节点0.8.x
及以下设计和编写,不使用require('stream').WritableStream
在node>=0.10.x
中提供的stream2
风格的方法。因此,它没有得到标准化的finish
事件。这取决于模块实现本身来发出finish
,而它显然没有。