使用节点服务器连接到 MongoDB 的警告

新手上路,请多包涵

连接 MongoDB 原生驱动

我编写了以下代码通过已安装的本机驱动程序连接 mongodb npm install mongodb --save

 const MongoClient = require("mongodb").MongoClient;
const url = "mongodb://127.0.0.1:27017";

const dbName = "game-of-thrones";
let db;

MongoClient.connect(
url,
 { useNewUrlParser: true },
  (err, client) => {
    if (err) return console.log(err);

  db = client.db(dbName);
   console.log(`Connected MongoDB: ${url}`);
   console.log(`Database: ${dbName}`);
  }
);

当我在终端上写 node server.js 我收到以下错误

(node:3500) DeprecationWarning:当前的服务器发现和监控引擎已被弃用,并将在未来的版本中删除。要使用新的服务器发现和监控引擎,请将选项 { useUnifiedTopology: true } 传递给 MongoClient.connect。连接的 MongoDB:mongodb://127.0.0.1:27017 数据库:game-of-thrones

数据库已连接,但我怎样才能摆脱警告

原文由 Momin 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 666
2 个回答

检查你的 mongo 版本

 mongo --version

如果您使用的是 >= 3.1.0 版本,请将您的 mongo 连接文件更改为 ->

  MongoClient.connect("mongodb://localhost:27017/YourDB", {
   useNewUrlParser: true,
   useUnifiedTopology: true
 })

3.2.1新增的 useUnifiedTopology 选项详见 https://github.com/mongodb/node-mongodb-native/releases/tag/v3.2.1

原文由 Bivin Vinod 发布,翻译遵循 CC BY-SA 4.0 许可协议

我的建议是保持原样(可能会发出警告)。 useUnifiedTopology: true 选项无法正常工作。

更准确地说,如果与 DBMS 的连接丢失,它将永远无法恢复。当前版本 3.3.3 没有解决这个问题。

检查这个

原文由 Siarhei Dudko 发布,翻译遵循 CC BY-SA 4.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题