我正在尝试确定写入节点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()。该字符串被写入流,但仍然没有回调。
为什么这个事件不会被解雇?
谢谢。
答案 0 :(得分:1)
gridfs-stream
模块的设计和编写主要针对节点0.8.x
及以下,并且不使用节点> = {stream2
中提供的require('stream').WritableStream
样式方法{1}}。因此,它没有获得标准化的0.10.x
事件。由模块实现本身来发出finish
,它显然没有。