mongodb 未处理的承诺拒绝警告:Mongoose服务器选择错误

fnatzsnv  于 2022-12-18  发布在  Go
关注(0)|答案(3)|浏览(201)

*未处理承诺拒绝警告:Mongoose服务器选择错误错误
当前行为是什么?

  • 你好,我正在尝试连接mongoose与URL字符串包括一切都很好,但在console.log(“mongoDB数据库连接建立成功”)这是不显示此控制台的文本,但一个错误是来那里
const express = require("express");
const cors = require("cors");
const mongoose = require("mongoose");
require("dotenv").config();
const app = express();
const port = process.env.PORT || 5000;

app.use(cors());
app.use(express.json());

const uri = process.env.ATLAS_URI;
// mongoose.connect(uri,{useNewUrlParser:true,useCreateIndex:true,useUnifiedTopology:true} 
   // ); // update the code provided below

mongoose
     .connect( uri, { useNewUrlParser: true, useCreateIndex: true, useUnifiedTopology: true })
     .then(() => console.log( 'Database Connected' ))
     .catch(err => console.log( err ));

app.listen(port, () => {
  console.log(`server is running on port ${port}`);
});

上面的server.js文件代码和.env中的URI键已给定
预期行为是什么?

  • 预期输出是MongoDB数据库连接成功建立。
    您正在使用的Node.js、Mongoose和MongoDB的版本是什么?请注意,“最新”不是一个版本。
  • “cors”:“^2.8.5”,“dotenv”:“^8.2.0”,“快速”:“^4.17.1”,“ Mongoose ”:“^5.11.14”,
xqnpmsa8

xqnpmsa81#

首先,检查防火墙中的端口状态,它是否打开。然后,您可以在Mongo Atlas中添加白名单IP地址。另外,mongoose.连接是一个承诺,需要像这样修改:

mongoose
     .connect( uri, { useNewUrlParser: true, useCreateIndex: true, useUnifiedTopology: true })
     .then(() => console.log( 'Database Connected' ))
     .catch(err => console.log( err ));

如果错误仍然存在,您可以按照以下步骤操作。
确保您的应用程序可以访问MongoDB Atlas环境。要从您的应用程序环境添加入站网络访问到Atlas,请执行以下操作之一:
1.将公用IP地址添加到IP访问列表
1.使用VPC / VNet对等来添加专用IP地址。提示另请参阅:IP访问列表
如果防火墙阻止出站网络连接,您还必须打开从应用程序环境到Atlas的出站访问。您必须配置防火墙,以允许应用程序对Atlas主机上的TCP流量进行端口27015至27017的出站连接。这将赠款应用程序对Atlas上存储的数据库的访问权限。
有关详细信息,请查看this
此外,您应该更改此设置以连接mongoose:

ocebsuys

ocebsuys2#

在花了大量时间寻找解决方案之后,当我尝试在连接字符串中将localhost更改为127.0.0.1时,它简单地工作了。

ee7vknir

ee7vknir3#

在网络访问中添加您的IP地址,因为mongo服务器有一个可以访问数据库的IP地址列表。

相关问题