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());