gridfs-stream和mongoose> = 4.11.0连接设置
我一直在使用与mongoose老版本(<4.11.0)的gridfs-stream与以下设置:
var grid = require("gridfs-stream"); var mongoose = require("mongoose"); mongoose.connect(connectionString); grid.mongo = mongoose.mongo; var gfs = grid(mongoose.connection.db);
所有这些设置正常工作。 在更新到mongoose4.11.11之后,应将mongoose连接设置更改为(第三行):
mongoose.connect(connectionString, {useMongoClient: true});
但是,现在mongoose.connection.db不再被定义。 上面的代码应该如何改变才能使其重新工作? 非常感谢。
我发现了一个解决scheme,它使用了deasync,并对我现有的所有代码进行了最小的修改。 然而,它看起来不理想,所以任何build议将不胜感激:
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());