gpt4 book ai didi

node.js - MongoDB Mongoose 连接数据库时出错

转载 作者:行者123 更新时间:2023-12-04 09:54:48 30 4
gpt4 key购买 nike

我在使用 Mongoose 连接到 MongoDB 数据库时遇到了问题。我正在使用 node js 和 express。

这是错误:

Error: queryTxt ESERVFAIL businessregistration-npeym.mongodb.net


(node:66755) UnhandledPromiseRejectionWarning: Error: queryTxt ESERVFAIL businessregistration-npeym.mongodb.net
at QueryReqWrap.onresolve [as oncomplete] (dns.js:206:19)
(node:66755) UnhandledPromiseRejectionWarning: Unhandled promise rejection. This error
originated either by throwing inside of an async function without a catch block, or by rejecting
a promise which was not handled with .catch(). To terminate the node process on unhandled
promise rejection, use the CLI flag `--unhandled-rejections=strict` (see
https://nodejs.org/api/cli.html#cli_unhandled_rejections_mode). (rejection id: 1)

我认为主要的错误是这样的: Error: queryTxt ESERVFAIL businessregistration-npeym.mongodb.net
我的代码:
const express = require("express");
const app = express();

const Schema = require("./Schema");
const mongoose = require("mongoose");
const port = process.env.PORT || 4000;

mongoose.connect(
"mongodb+srv://<username>:<password>@businessregistration-npeym.mongodb.net/test?retryWrites=true&w=majority",
{ useNewUrlParser: true, useUnifiedTopology: true }
);

mongoose.connection.on("connected", function () {
console.info("Connected!\n\n");
});
mongoose.connection.on("error", function (err) {
console.error(`ERROR!!! The error is: ${err}\n\n`); // error is consoled here
});
mongoose.connection.on("disconnected", function () {
console.warn(
"The connection has been lost. This is because it got disconnected.\n\n"
);
});

app.listen(port, () => {
console.log(`Listening on port ${port}!`);
});

我不知道为什么会突然发生这种情况。如果能帮到你,谢谢!

最佳答案

经过一番研究,滚动堆栈溢出,我终于找到了解决方案。

堆栈溢出对 JOSEPH KASULE 的感谢:Thanks!

回答链接:How to fix 'Error: querySrv EREFUSED' when connecting to MongoDB Atlas?

向下滚动到正确答案以找到它。

事实证明,我必须使用较旧的连接方法进行连接。我必须选择 2.2.12 或更高版本的 Node :

2.2.12 or greater

我必须使用旧版本的连接:

取而代之的是:

mongodb+srv://<username>:<password>@businessregistration-npeym.mongodb.net/test?retryWrites=true&w=majority

我不得不使用这个:
mongodb://<username>:<password>@businessregistration-shard-00-00-npeym.mongodb.net:27017,businessregistration-shard-00-01-npeym.mongodb.net:27017,businessregistration-shard-00-02-npeym.mongodb.net:27017/test?ssl=true&replicaSet=BusinessRegistration-shard-0&authSource=admin&retryWrites=true&w=majority

使用 mongoose 连接到 Mongo DB 时。

原因是根据 Mongo DB,由于 Mongoose,SRV 无法正常工作。

关于node.js - MongoDB Mongoose 连接数据库时出错,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61942120/

30 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com