MongoNetworkError при первом подключении с использованием Docker и NodeJS - PullRequest
0 голосов
/ 20 января 2020

Я все еще невероятно новичок в кодировании. Я пытаюсь запустить приложение, используя docker, все идет хорошо, пока я не получу эту ошибку:

{ MongoNetworkError: failed to connect to server [localhost:27017] on first connect [MongoNetworkError: connect ECONNREFUSED 127.0.0.1:27017]
    at Pool.<anonymous> (/app/node_modules/mongodb/lib/core/topologies/server.js:433:11)
    at Pool.emit (events.js:198:13)
    at createConnection (/app/node_modules/mongodb/lib/core/connection/pool.js:577:14)
    at connect (/app/node_modules/mongodb/lib/core/connection/pool.js:1007:11)
    at makeConnection (/app/node_modules/mongodb/lib/core/connection/connect.js:31:7)
    at callback (/app/node_modules/mongodb/lib/core/connection/connect.js:247:5)
    at Socket.err (/app/node_modules/mongodb/lib/core/connection/connect.js:276:7)
    at Object.onceWrapper (events.js:286:20)
    at Socket.emit (events.js:198:13)
    at emitErrorNT (internal/streams/destroy.js:91:8)
    at emitErrorAndCloseNT (internal/streams/destroy.js:59:3)
    at process._tickCallback (internal/process/next_tick.js:63:19)
  name: 'MongoNetworkError',
  [Symbol(mongoErrorContextSymbol)]: {} }
[nodemon] clean exit - waiting for changes before restart

У меня mongodb работает как сервер на Windows 10, и у меня также работает в другом окне, поэтому я не уверен, что может быть причиной этого. Я пробовал все решения на этой странице , но безрезультатно. Заранее спасибо!

Ответы [ 2 ]

0 голосов
/ 23 апреля 2020

Я использовал похожую концепцию, как у вас. Попробуйте запустить службы node-app и Mongo в одной сети.

В Mongo строке подключения имя хоста должно совпадать с именем службы, указанным в файле docker-compose.yml.

enter image description here

enter image description here

0 голосов
/ 20 января 2020

Localhost - это контейнер, а не ваша машина. При работе с контейнерами вам необходимо рассматривать контейнер как отдельный компьютер и использовать полный сетевой адрес для связи между вашим компьютером и контейнером.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...