我正在使用 mongoDB 和 NodeJS 后端。问题是我收到以下错误
节点:16)UnhandledPromiseRejectionWarning:MongoNetworkError:失败
首次连接时连接到服务器 [localhost:27017]
[MongoNetworkError:连接ECONNREFUSED 127.0.0.1:27017]
这是我的 docker-compose
version: '3.4'
services:
db:
image: mongo:latest
ports:
- '27017:27017'
rest-api-node:
build: .
ports:
- '5000:5000'
links:
- db
restart: on-failure
我尝试过depends_on
也没有工作。
在后端,我使用猫鼬作为与数据库通信的中间件。这是我的一部分index.js
mongoose.Promise = global.Promise
mongoose.connect('mongodb://localhost/demo')
app.listen(port, () => console.log("live"))
我也尝试过使用promise,但没有改变。请帮帮我。
提前致谢
完整的错误日志
在泳池。
(/app/node_modules/mongodb-core/lib/topologies/server.js:505:11)
休息-api-node_1 |在 Pool.emit (events.js:180:13)rest-api-node_1
|在连接处。
(/app/node_modules/mongodb-core/lib/connection/pool.js:329:12)
休息-api-node_1 |在 Object.onceWrapper (events.js:272:13)
休息-api-node_1 |在 Connection.emit (events.js:180:13)
休息-api-node_1 |在套接字。
(/app/node_modules/mongodb-core/lib/connection/connection.js:245:50)
休息-api-node_1 |在 Object.onceWrapper (events.js:272:13)
休息-api-node_1 |在 Socket.emit (events.js:180:13)
休息-api-node_1 |在发出错误NT
(内部/streams/destroy.js:64:8)rest-api-node_1 |在
process._tickCallback (内部/process/next_tick.js:178:19)
休息-api-node_1 |名称:'MongoNetworkError',rest-api-node_1 |
消息:'首先无法连接到服务器 [localhost:27017]
连接 [MongoNetworkError: 连接 ECONNREFUSED 127.0.0.1:27017]' }
默认情况下Compose https://docs.docker.com/compose/networking/为您的应用程序设置一个网络。每个
服务的容器加入默认网络并且既是
该网络上的其他容器可以访问,并且可以通过
它们的主机名与容器名称相同。
根据你的docker-compose.yaml
您可以访问 mongo 容器的文件127.0.0.1:27017
仅来自主机。
为了从 NodeJS 后端容器访问它,您应该使用db:27017
.
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)