我正在使用MongoDB和NodeJS后端。问题是我遇到以下错误:
node:16) UnhandledPromiseRejectionWarning: MongoNetworkError: failed to connect to server [localhost:27017] on first connect [MongoNetworkError: connect 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
,但是没有起作用。
在后端,我使用mongoose作为中间件与数据库进行通信。这是我的index.js
的一部分。
mongoose.Promise = global.Promise
mongoose.connect('mongodb://localhost/demo')
app.listen(port, () => console.log("live"))
我也尝试过使用 Promise,但没有改变。请帮帮我。谢谢。
完整的错误日志
在 Pool. (/app/node_modules/mongodb-core/lib/topologies/server.js:505:11) rest-api-node_1 | 在 Pool.emit (events.js:180:13) rest-api-node_1 | 在 Connection. (/app/node_modules/mongodb-core/lib/connection/pool.js:329:12) rest-api-node_1 | 在 Object.onceWrapper (events.js:272:13) rest-api-node_1 | 在 Connection.emit (events.js:180:13) rest-api-node_1 | 在 Socket. (/app/node_modules/mongodb-core/lib/connection/connection.js:245:50) rest-api-node_1 | 在 Object.onceWrapper (events.js:272:13) rest-api-node_1 | 在 Socket.emit (events.js:180:13) rest-api-node_1 | 在 emitErrorNT (internal/streams/destroy.js:64:8) rest-api-node_1 | 在 process._tickCallback (internal/process/next_tick.js:178:19) rest-api-node_1 | name: 'MongoNetworkError', rest-api-node_1 |
message: 'failed to connect to server [localhost:27017] on first connect [MongoNetworkError: connect ECONNREFUSED 127.0.0.1:27017]' }
localhost
。你必须将URL更改为mongodb://db:27017/demo
。这解决了我的问题。 - Rajesh Barik