无法获取节点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");
在我的控制台,我看到“结束”,但从来没有“完成”,而且从来没有回应。 然而,stream正在写入正确,似乎正在完成(我看到在数据库中完成的文件)。 这甚至不是开火。 我试着将“这可能工作”移动到end()和去除write()的调用中,我也尝试将一个string传递给end()。 该string被写入stream,但仍然没有callback。
为什么这个事件不会被解雇?
谢谢。
gridfs-stream
模块主要针对节点0.8.x
及以下版本进行devise和编写,不使用require('stream').WritableStream
提供的stream2
风格的方法,节点> = 0.10.x
require('stream').WritableStream
。 正因为如此,它没有得到标准化的finish
事件。 这是由模块实现本身来发射finish
,这显然没有。