我在尝试使用mongodb驱动程序从Node.js应用程序连接到MongoDB时遇到了一个问题。
我在本地机器上运行了一个MongoDB服务器,我可以使用MongoDB Compass和VS Code扩展成功连接到它。
但是,当我尝试从Node.js应用程序连接时,我遇到了一个错误。
const { MongoClient } = require('mongodb');
const uri = 'mongodb://localhost:27017/';
const client = new MongoClient(uri);
client.connect((err) => {
if (err) {
console.error(err);
return;
}
console.log('Connected to MongoDB');
// ... continue with my code
});
字符串
我收到的错误消息是:
MongoServerSelectionError: connect ECONNREFUSED ::1:27017
// rest of the error details...
型
我尝试从Node.js应用程序连接到MongoDB。
我已经检查了以下内容:
- MongoDB服务器在我的本地机器上运行,我可以使用MongoDB Compass和VS Code扩展连接。
- 我已经使用npm安装了mongodb包,我也尝试了不同版本的包。
- 连接到我的MongoDB服务器不需要身份验证。
- 我也尝试在安装过程中指定mongodb包的版本,但问题仍然存在。
为什么我无法从Node.js应用程序连接到MongoDB?我的代码或配置中缺少了什么吗?
2条答案
按热度按时间798qvoo81#
尝试将URI中的
localhost
替换为显式locsl IPv4127.0.0.1
:字符串
正如Node的mongodb驱动程序所解释的那样:
注意:解决DNS连接问题
Node.js 18将默认DNS解析顺序从始终优先考虑ipv4更改为DNS提供商返回的顺序。在某些环境中,这可能会导致
localhost
解析为ipv6地址而不是ipv4地址,从而导致无法连接到服务器。这可以通过以下方式解决:[...]
127.0.0.1
代替localhosteimct9ow2#
嗨,大家好,谢谢大家的有益的意见,这个问题的答案是在两个步骤
A.将它们设置在mongod.conf文件中
字符串
或者是
型
启动Mongo服务器时将它们添加到命令中
第一个月
1.我没有一个mongod.conf文件,所以我不得不写一个,这是它应该看起来像
型
前两个和已启用,其他是可选的
我也会提到这个问题,因为它就像我的Can't connect to MongoDB 6.0 Server locally using Nodejs driver