我一直在旧版本(<4.11.0)的mongoose上使用gridfs-stream,设置如下:
var grid = require("gridfs-stream");
var mongoose = require("mongoose");
mongoose.connect(connectionString);
grid.mongo = mongoose.mongo;
var gfs = grid(mongoose.connection.db);所有这些设置都可以正常工作。更新到mongoose 4.11.11后,mongoose连接设置应更改为(第3行):
mongoose.connect(connectionString, {useMongoClient: true});但是,现在不再定义mongoose.connection.db。应该如何更改上面的代码才能使其再次工作?非常感谢。
发布于 2017-09-13 01:01:45
我找到了一个解决方案,它利用了deasync,并且对我现有的所有代码进行了最小程度的更改。然而,它看起来并不理想,因此任何建议都将非常感谢:
var grid = require("gridfs-stream");
var mongoose = require("mongoose");
var deasync = require("deasync");
//Connect to mongodb
mongoose.Promise = global.Promise;
mongoose.connect(connectionString, {useMongoClient: true});
//Get the connection setting
var getConnDb = function () {
var connDb;
mongoose.connection.then(function (conn) {
connDb = conn.db;
});
while (connDb === undefined) {
deasync.runLoopOnce();
}
return connDb;
};
//Set gridfs-stream connection
grid.mongo = db.mongo;
var gfs = grid(getConnDb());https://stackoverflow.com/questions/46161187
复制相似问题