*未处理承诺拒绝警告: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”,
3条答案
按热度按时间xqnpmsa81#
首先,检查防火墙中的端口状态,它是否打开。然后,您可以在Mongo Atlas中添加白名单IP地址。另外,mongoose.连接是一个承诺,需要像这样修改:
如果错误仍然存在,您可以按照以下步骤操作。
确保您的应用程序可以访问MongoDB Atlas环境。要从您的应用程序环境添加入站网络访问到Atlas,请执行以下操作之一:
1.将公用IP地址添加到IP访问列表
1.使用VPC / VNet对等来添加专用IP地址。提示另请参阅:IP访问列表
如果防火墙阻止出站网络连接,您还必须打开从应用程序环境到Atlas的出站访问。您必须配置防火墙,以允许应用程序对Atlas主机上的TCP流量进行端口27015至27017的出站连接。这将赠款应用程序对Atlas上存储的数据库的访问权限。
有关详细信息,请查看this。
此外,您应该更改此设置以连接mongoose:
ocebsuys2#
在花了大量时间寻找解决方案之后,当我尝试在连接字符串中将
localhost
更改为127.0.0.1
时,它简单地工作了。ee7vknir3#
在网络访问中添加您的IP地址,因为mongo服务器有一个可以访问数据库的IP地址列表。