【问题标题】:Unable to connect to mongodb cluster无法连接到mongodb集群
【发布时间】:2020-02-08 06:40:01
【问题描述】:

我是节点 js 的新手。我正在开发简单的用户身份验证应用程序。

我无法连接到 mongodb cluster0,出现错误:

(node:22264) DeprecationWarning: 当前服务器发现和 监控引擎已弃用,未来将被移除 版本。要使用新的服务器发现和监控引擎,请通过 选项 { useUnifiedTopology: true } 到 MongoClient 构造函数。 TypeError:回调不是函数 在 $initialConnection.$initialConnection.then.err

我已经通过添加或不添加{ useUnifiedTopology: true } 仍然使用了这两种方式 遇到同样的错误

const express = require("express");
const expressLayouts = require("express-ejs-layouts");
const mongoose = require("mongoose");

const app = express();

//DB config
const db = require("./config/keys").MongoURI;

//connect to mongodb
mongoose
  .connect(db, { useNewUrlParser: true }, { useUnifiedTopology: true })
  .then(() => console.log("MongoDB Connected"))
  .catch(err => console.log(err));

我的keys.js

module.exports = {
  MongoURI:
    "mongodb+srv://cluster0:<123455>@cluster0-7tt0p.mongodb.net/test?retryWrites=true&w=majority"
};

【问题讨论】:

    标签: node.js mongodb


    【解决方案1】:

    您需要在单个对象中发送 useNewUrlParser 和 useUnifiedTopology。

    { useNewUrlParser: true, useUnifiedTopology: true }
    

    还要确保您的连接字符串是正确的,并在读取后通过 console.log(db) 从配置中正确加载。

    【讨论】:

      【解决方案2】:

      如果连接到Atlas,您需要在选项中提供DBName

      mongoose
      
      .connect(db,
          {dbName: 'yourDbName', 
           useNewUrlParser: true ,
           useUnifiedTopology: true }
      ).then(() => console.log('MongoDB Connected'))
      
      .catch(err => console.log(err));
      

      以及单个对象中的所有选项。更多信息here

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2019-06-10
        • 1970-01-01
        • 2020-10-31
        • 2018-03-05
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多