gpt4 book ai didi

node.js - 无法通过 Docker 中的 node.js 连接到 MongoDB

转载 作者:可可西里 更新时间:2023-11-01 09:17:59 26 4
gpt4 key购买 nike

我的 node.js Express 应用程序无法连接到 Docker 中的 MongoDB。 我对 Docker 不太熟悉。

node.js 连接:

import mongodb from 'mongodb';
...
mongodb.MongoClient.connect('mongodb://localhost:27017', ... );

docker 文件:

FROM node:argon
RUN mkdir /app
WORKDIR /app
COPY package.json /app
RUN npm install
COPY . /app
EXPOSE 3000
CMD ["npm", "start"]

docker-compose.yml

version: “2”
services:
web:
build: .
volumes:
— ./:/app
ports:
— “3000:3000”
links:
— mongo
mongo:
image: mongo
ports:
— “27017:27017”

构建命令:docker build -t NAME .

运行命令:docker run -ti -p 3000:3000 NAME

连接错误:

[MongoError: failed to connect to server [localhost:27017] on first connect [MongoError: connect ECONNREFUSED 127.0.0.1:27017]]
name: 'MongoError',
message: 'failed to connect to server [localhost:27017] on first connect [MongoError: connect ECONNREFUSED 127.0.0.1:27017]'

最佳答案

尝试:

mongodb.MongoClient.connect('mongodb://mongo:27017', ... );

改变你的docker-compose.yml:

version: "2"

services:

web:
build: .
volumes:
- ./:/app
ports:
- "3000:3000"
links:
- mongo

mongo:
image: mongo
ports:
- "27017:27017"

并使用一些 docker compose命令:

docker-compose down
docker-compose build
docker-compose up -d mongo
docker-compose up web

关于node.js - 无法通过 Docker 中的 node.js 连接到 MongoDB,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44938344/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com