后端连接报ECONNREFUSED 127.0.0.1:5000错误errno:-4078如何解决?
故障根因定位
你遇到的连接拒绝报错核心原因是配置参数写错,导致服务根本没有正常启动:
你的数据库配置代码中,Sequelize的端口参数错误使用了process.env.PORT,而你实际定义的数据库端口环境变量是DB_PORT,会触发连锁问题:
- Sequelize会尝试用Express服务的端口(默认5000)连接PostgreSQL,而PostgreSQL实际运行在5432端口,直接导致数据库连接失败
- 数据库连接失败后,你的启动函数会进入catch分支打印错误,不会执行后续的
app.listen(PORT)逻辑,Express服务根本没有启动,访问127.0.0.1:5000自然会报ECONNREFUSED错误
修复方案
- 第一步:修改数据库配置文件的端口参数,替换为正确的数据库端口变量
require('dotenv').config() const {Sequelize} = require('sequelize') module.exports = new Sequelize( process.env.DB_NAME, process.env.DB_USER, process.env.DB_PASSWORD, { dialect: 'postgres', host: process.env.DB_HOST, port: process.env.DB_PORT // 此处原代码错误写为process.env.PORT,修改为DB_PORT即可 } )
- 第二步:确认
.env文件配置完整正确,参考格式如下:
PORT=5000 DB_NAME=你的数据库名称 DB_USER=PostgreSQL登录用户名 DB_PASSWORD=PostgreSQL登录密码 DB_HOST=127.0.0.1 DB_PORT=5432
- 第三步:重启Node服务,观察控制台输出,如果看到
Server started on port 5000的日志,说明服务启动成功,此时再调用接口就不会出现连接拒绝问题。如果还是报错,查看控制台打印的数据库错误信息,按提示检查PostgreSQL服务是否启动、账号密码是否正确、数据库是否已创建即可。
内容的提问来源于stack exchange,提问作者rboy
相关产品推荐
相关产品推荐

