【发布时间】:2016-04-07 22:51:28
【问题描述】:
我在使用 ExpressJs 发送回流响应时遇到了困难。有人可以调查一下并帮助我了解我在这段代码中的错误所在吗?
这是我要发回的 .mp4 文件。
另外,我有我想要在 Mongo Grid 中读取的请求文件,如下所示
{ "_id" : ObjectId("5702b22fc327277b338a4229"), "filename" : **"vsl_video1.mp4"**, "contentType" : "binary/octet-stream", "length" : 29442776, "chunkSize" : 261120, "uploadDate" : ISODate("2016-04-04T18:28:00.324Z"), "aliases" : null, "metadata" : null, "md5" : "33c0daecaf9d6d84408041dfe5724295" }
这是我的代码,它试图读取此文件并尝试将其附加到响应中
filename = req.params.filename;
MongoClient.connect(mongoUrl, function(err, db) {
var gridReadStream, gridfs;
gridfs = Grid(db, Mongo);
gridReadStream = gridfs.createReadStream({
filename: filename
});
console.log('after creating the read stream');
console.log(filename);
gridReadStream.pipe(res);
db.close();
return res.status(200);
当我发布请求时,我可以打印两个控制台日志。我确信 readstream 也可以正常工作(我测试写入本地文件,它确实将二进制数据写入该文件),所以由于某种原因,响应不起作用。
我在这里发布没有任何错误。我发现我的响应永远不会回来,而且在很长一段时间后它就会超时。
任何建议将不胜感激。
【问题讨论】: