【发布时间】:2020-03-23 20:04:55
【问题描述】:
我有一个简单的问题,但找不到有效的解决方案。 我有一个在 Vue 和 Mongo 上运行的应用程序。我已经使用 Mongo Atlas 进行测试,但现在是时候让应用继续生产了,所以决定使用 DigitalOcean。我用 Node.js 和 MongoDB 创建了 droplet,并设法连接了我的后端和 MongoDB。但! 当我在 VPS 上运行我的文件时没有问题:
mongodb.MongoClient.connect('mongodb://localhost:27017/dbname', { useUnifiedTopology: true }, function (err, client) {
if (err) throw err;
app.locals.db = client.db('xxxx');
app.listen(port, () => console.log(`Server started on port ${port}`));
})
但是,当我尝试通过本地副本上的 IP 连接时,出现超时错误。
mongodb.MongoClient.connect('mongodb://ip:27017/dbname', { useUnifiedTopology: true }, function (err, client) {
if (err) throw err;
app.locals.db = client.db('xxxx');
app.listen(port, () => console.log(`Server started on port ${port}`));
})
我已经使用ip:3000(应用程序的端口)和ip:27017 进行了测试。另外,我创建了一个用户并尝试使用用户并通过。一样。我尝试编辑 mongod.conf 并沿着 localhost 添加了 VPS 的 IP - 仍然无法正常工作。我做错了什么?
【问题讨论】:
-
您是否尝试将所有地址列入白名单?
-
是的。实际上,我在此处发布问题 2 分钟后发现了问题。事实证明,在 host:port 部分之后,我得到了项目的路径而不是数据库名称。他们有相似的名字......
-
mongod 默认只监听 127.0.0.1,你确定它在监听其他 IP 吗?
标签: node.js mongodb digital-ocean