无法获取节点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 ,这显然没有。