Mongoose 4.11.0承诺超时

时间:2017-06-28 21:25:08

标签: node.js mongoose bluebird

我使用猫鼬和蓝鸟。 设置是按照书本进行的,并且正在使用useMongoClient选项,如通知所要求的那样。

Mongoose.connect(myConnectionString, {useMongoClient: true});

但是我使用的承诺都没有执行。

4 个答案:

答案 0 :(得分:1)

我发现这可能是mongoose的错误

回滚mongoose版本后问题消失了

npm uninstall -save mongoose
npm install -save mongoose@4.10.8

您可以删除useMongoClient选项Mongoose.connect(connectionString);,并忽略该消息

  

弃用警告:open()在mongoose> = 4.11.0中已弃用,请改用openUri(),或者如果使用useMongoClientconnect()则设置createConnection()选项}

https://github.com/Automattic/mongoose/blob/master/History.md 显示

希望这有助于某人

答案 1 :(得分:1)

src="html/1.jpg"

我已将此代码用于最新版本并且警告已经消失。请试一试。或者使用旧版本。

答案 2 :(得分:1)

此代码解决了所有弃用警告:

mongoose.Promise = global.Promise;
mongoose.connect(uri, {
  keepAlive: true,
  reconnectTries: Number.MAX_VALUE,
  useMongoClient: true
});

实施例:     const mongoose = require(" mongoose");

module.exports.connect = uri => {
  mongoose.connect(uri, {
    keepAlive: true,
    reconnectTries: Number.MAX_VALUE,
    useMongoClient: true
  });
  // plug in the promise library:
  mongoose.Promise = global.Promise;

  mongoose.connection.on("error", err => {
    console.error(`Mongoose connection error: ${err}`);
    process.exit(1);
  });

  // load models
  require("./user");
};

答案 3 :(得分:0)

如需进一步阅读,撰稿人可在此处讨论新行为:https://github.com/Automattic/mongoose/issues/5399#issuecomment-312523545