我正在尝试通过使用本机驱动程序将其放入 MongoDB 的 gridfs 系统来处理发布到 Express 站点的文件。
我遇到的问题是请求的块在 gridStore 对象准备好之前就已经全部发送了。把 request.on('data'...这显然是一个不完整的例子(我从来没有看到“块”记录到控制台):
var Db = require('mongodb').Db,
MongoClient = require('mongodb').MongoClient,
Server = require('mongodb').Server,
ObjectID = require('mongodb').ObjectID,
GridStore = require('mongodb').GridStore,
db;
db = new Db('dbName', new Server('serverAddress', 27017), { safe: false });
db.open(function (err, db) {
console.log("db open");
var gridStore = new GridStore(db, new ObjectID(), 'fileName', "w");
gridStore.open(function (err, gridStore) {
console.log("gridStore open");
req.on('data', function (chunk) {
console.log("chunk");
gridStore.write(chunk, function () {});
});
});
})
我想知道是否有办法从 Express 站点的路线中阻止流来,直到 gridStore 准备好。或者,我希望有一种同步方式来设置 gridStore 以使其工作(如果存在)。