J'utilise mongoDB avec et le backend NodeJS. Le problème est que j'obtiens l'erreur suivante
nœud: 16) UnhandledPromiseRejectionWarning: MongoNetworkError: échec de connexion au serveur [localhost: 27017] lors de la première connexion [MongoNetworkError: connect ECONNREFUSED 127.0.0.1.127017]
Ceci est mon 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
J'ai essayé avec depends_on
aussi, ne fonctionnait pas.
En backend, je suis mangouste en tant que middleware pour communiquer avec DB. c'est la partie de mon index.js
mongoose.Promise = global.Promise
mongoose.connect('mongodb://localhost/demo')
app.listen(port, () => console.log("live"))
J'ai également essayé d'utiliser la promesse, aucun changement cependant. Sil te plait aide moi. Merci d'avance
journal des erreurs complet
à Pool. (/app/node_modules/mongodb-core/lib/topologies/server.js:505:11) rest-api-node_1 | sur 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 | sur Object.onceWrapper (events.js: 272: 13) rest-api-node_1 | sur 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 | sur Object.onceWrapper (events.js: 272: 13) rest-api-node_1 | sur Socket.emit (events.js: 180: 13) rest-api-node_1 | à emitErrorNT (internal/streams/destroy.js: 64: 8) rest-api-node_1 | sur process._tickCallback (internal/process/next_tick.js: 178: 19) rest-api-node_1 | nom: 'MongoNetworkError', rest-api-node_1 |
message: "échec de connexion au serveur [localhost: 27017] lors de la première connexion [MongoNetworkError: connect ECONNREFUSED 127.0.0.1:27017]"}
Par défaut Compose configure un réseau unique pour votre application. Chaque conteneur d'un service rejoint le réseau par défaut et est à la fois accessible par d'autres conteneurs sur ce réseau et détectable par eux à un nom d'hôte identique au nom du conteneur.
Selon ton docker-compose.yaml
fichier, vous pouvez accéder à votre conteneur mongo sur 127.0.0.1:27017
uniquement à partir de la machine hôte. Pour y accéder à partir du conteneur principal NodeJS, vous devez utiliser db:27017
.