我发现节点版本
18.12.0
和 mongodb 6.0.2
存在一个问题。我已经使用 mongodb 构建了一个 Nestjs 应用程序。这里我使用 @nestjs/mongoose(v- 9.0.2)
和 mongoose (v-6.7.0)
在这里我可以看到,当我将 Node js 升级到最新的 lts 版本时,我无法连接到 mongodb。它显示类似
unable to connect to database
的错误。
但是当我降级到节点版本时
16.18.0
然后它工作正常。我的问题是你们已经面临这个问题,或者我是唯一遇到这个问题的人。如果你知道的话,那么问题到底出在哪里呢?
这是我的连接代码-
MongooseModule.forRoot("mongodb://localhost:27017/nekmart", {
connectionFactory: (connection) => {
connection.plugin(slug, { number: true });
return connection
}
}),
升级到 NodeJs 18.12.1 后遇到同样的问题;关注其他博客/评论,显然
将 Uri 从
mongodb://localhost:27017/test_db
更改为 mongodb://127.0.0.1:27017/test_db
有效。
在不了解具体原因的情况下,似乎
localhost
由于 NodeJS 中的一些更改而被拒绝。
**mongodb://0.0.0.0:27017/?**
在新版本的节点和猫鼬库中尝试使用它,它会正常工作 同样的事情也适用于具有新版本节点的“我的许多”系统。
大多数情况下,在本地主机处输入 ipv4 IP 地址即可正常工作
如果碰巧它想要工作,请尝试使用您电脑中配置的每个 ipconfig ip。
以太网适配器以太网:
连接特定的 DNS 后缀。 :
链路本地 IPv6 地址。 。 。 。 。 :fe40::2830:7f6b:e242:7232%6
IPv4 地址。 。 。 。 。 。 。 。 。 。 。 :192.168.10.---
子网掩码。 。 。 。 。 。 。 。 。 。 。 : 255.255.255.0
默认网关。 。 。 。 。 。 。 。 。 : 192.165.10.5
以上配置取决于您的电脑设置
当我修改项目中的数据库名称时 - DATABASE_URL=mongodb://localhost:27017/yourDbName 到--->>>>
DATABASE_URL=mongodb://127.0.0.1:27017/yourDbName
它对我有用,祝你好运