无法连接到mongoDB“第一次连接时无法连接”

kokeuurv  于 2023-08-04  发布在  Go
关注(0)|答案(1)|浏览(120)

在设置好mongoconfiguration后,我试图连接到mongodb,但是一个错误不断弹出,我无法设置连接:
x1c 0d1x的数据

MongoError: failed to connect to server [cluster0.mndwygw.mongodb.net:27017] on first connect [Error: getaddrinfo ENOTFOUND cluster0.mndwygw.mongodb.net   
    at GetAddrInfoReqWrap.Onlookupall [as oncomplete] (node:dns:118:26) {    
  name: 'MongoError'  
}]: did not connect

字符串
下面是我使用的index.js文件:

  • index.js *
import express from "express";
import bodyParser from "body-parser";
import mongoose from "mongoose";
import cors from "cors";
import dotenv from "dotenv";
import helmet from "helmet"
import morgan from "morgan"

// CONFIGURATIONS
dotenv.config()
const app = express();
app.use(express.json());
app.use(helmet());
app.use(helmet.crossOriginResourcePolicy({policy: "cross-origin"}));
app.use(morgan("common"));
app.use(bodyParser.json());
app.use(bodyParser.urlencoded({extended:false}));
app.use(cors());

// MONGOOSE SETUP

const PORT = process.env.PORT || 9000;
mongoose.Promise = global.Promise;

mongoose.connect(process.env.MONGO_URL, {
    // useNewUrlParser: true,
    // useUnifiedTopology: true,
    useMongoClient: true,
})
.then(async () => {
    app.listen(PORT, ()=> console.log(`Server Port: ${PORT}`));
})
.catch((error) => console.log(`${error}: did not connect`));`


我已经检查了我的MONGO_URL是正确的(在我的.env文件中)

.ENV文件:

MONGO_URL ="mongodb+srv://dummyUser:<password>@cluster0.mndwygw.mongodb.net/?retryWrites=true&w=majority"

  • (显然“”不是真实的的密码)*
  • 我尝试更改群集的网络访问(添加不同的IP地址)
  • 我试图删除我的笔记本电脑的DNS缓存。
  • 我检查了网络连接是否稳定
  • 我检查了我连接的网络上没有任何限制或防火墙。

我期望发生的是控制台将记录代码中编写的端口号。

Mongo Schema?

另一个奇怪的事情是MongoDB为我提供了一个URL来连接到我的应用程序。URL以mongodb+srv://开头,但当我尝试建立连接时,我的控制台会记录错误
“throw new Error('Invalid mongodb uri“' + str + '".必须以“mongodb://”'开始);“

8ljdwjyq

8ljdwjyq1#

检查package.json文件中mongoose的版本。

import express from "express";
import bodyParser from "body-parser";
import mongoose from "mongoose";
import cors from "cors";
import dotenv from "dotenv";
import helmet from "helmet"
import morgan from "morgan"

// CONFIGURATIONS
dotenv.config()
const app = express();
app.use(express.json());
app.use(helmet());
app.use(helmet.crossOriginResourcePolicy({policy: "cross-origin"}));
app.use(morgan("common"));
app.use(bodyParser.json());
app.use(bodyParser.urlencoded({extended:false}));
app.use(cors());

// MONGOOSE SETUP

const PORT = process.env.PORT || 9000;
mongoose.Promise = global.Promise;

mongoose.connect('mongodb+srv://username:password@cluster0.s7f0nt6.mongodb.net/?retryWrites=true&w=majority', {
    useNewUrlParser: true,
    // useUnifiedTopology: true,
    //useMongoClient: true,
})
.then(async () => {
    app.listen(PORT, ()=> console.log(`Server Port: ${PORT}`));
})
.catch((error) => console.log(`${error}: did not connect`));

字符串
在最新的mongoose中(目前我使用的是7.3.2),使用这个useNewUrlParser:truenot this**useMongoClient:这是我的工作。

相关问题