gpt4 book ai didi

node.js - SequelizeConnectionRefusedError : connect ECONNREFUSED 127. 0.0.1:4321

转载 作者:行者123 更新时间:2023-12-02 18:58:14 33 4
gpt4 key购买 nike

我将 Sequelize ORM 与 PostgreSQL 方言一起使用,该方言托管在 localhost 上运行的 docker 容器中。应用程序通过端口 3050 运行,数据库通过端口 5432 重定向到 4321。
错误:

Server is running on port: 3050
Unable to connect to the database: SequelizeConnectionRefusedError: connect ECONNREFUSED 127.0.0.1:4321
docker-compose.yml
version: "3"

services:
app:
build: .
command: yarn start
ports:
- "3050:3050"
depends_on:
- postgres
volumes:
- .:/home/app/medtech
- /home/app/medtech/node_modules
postgres:
image: postgres:alpine
ports:
- "4321:5432"
environment:
POSTGRES_USER: postgres
POSTGRES_DB: medtech_dev
POSTGRES_PASSWORD: uaz0ZWrsCeUG3271GsRB
我的数据库连接片段
import Sequelize from 'sequelize';
import Constants from '../utils/constants';

const sequelize = new Sequelize(
Constants.database.name,
Constants.database.user,
Constants.database.password, {
host: Constants.database.host,
port: Constants.database.port,
dialect: 'postgres',
pool: {
max: 10,
min: 0,
acquire: 10000,
idle: 20000,
},
timezone: Constants.timezone,
},
);
常量值来自我的 .env:
DATABASE_PORT=4321
DATABASE_HOST=localhost
DATABASE_NAME=medtech_dev
DATABASE_USER=postgres
DATABASE_PASSWORD=uaz0ZWrsCeUG3271GsRB
由于某种我不知道 的原因,我使用一个单独的文件来运行我的种子和迁移,使用完全相同的数据库常量和 它可以工作 。这是:
const Constants = require('../utils/constants').default;

module.exports = {
username: Constants.database.user,
port: Constants.database.port,
password: Constants.database.password,
database: Constants.database.name,
host: Constants.database.host,
dialect: 'postgres',
};
在我通过我的文件和我阅读的许多线程进行了许多更改之后,我想不出是什么导致了这个问题。那是我第一次使用 Docker,我不知道我的 Docker 配置文件是否真的有问题或其他某种错误。
我很感激任何帮助。

最佳答案

您的应用程序容器和 postgres 运行在两个不同的容器中,这意味着它们是两台不同的机器,每台机器都有自己的 IP。
您不能使用 localhost:postgresport 从您的应用程序容器调用 postgres 服务,反之亦然,从 postgres 到应用程序容器
似乎 Constants.database.host 是 localhost 或 172.0.0.1 ,要到达 postgres 容器,您必须调用容器 ip 或名称或服务名称
在您的情况下,将 Constants.database.host 值更改为 postgres 并尝试一下

关于node.js - SequelizeConnectionRefusedError : connect ECONNREFUSED 127. 0.0.1:4321,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/63581465/

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