You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

React项目Node.js服务端运行npm start时出现HostNotFoundError报错求助

问题:React项目服务端执行npm start时出现SequelizeHostNotFoundError

错误核心信息:

HostNotFoundError [SequelizeHostNotFoundError]: getaddrinfo ENOTFOUND undefined

完整错误栈:

[0] HostNotFoundError [SequelizeHostNotFoundError]: getaddrinfo ENOTFOUND undefined
[0] parent: Error: getaddrinfo ENOTFOUND undefined
[0] at GetAddrInfoReqWrap.onlookup [as oncomplete] (node:dns:107:26) {
[0] errno: -3008,
[0] code: 'ENOTFOUND',
[0] syscall: 'getaddrinfo',
[0] hostname: 'undefined'
[0] },
[0] original: Error: getaddrinfo ENOTFOUND undefined
[0] at GetAddrInfoReqWrap.onlookup [as oncomplete] (node:dns:107:26) {
[0] errno: -3008,
[0] code: 'ENOTFOUND',
[0] syscall: 'getaddrinfo',
[0] hostname: 'undefined'
[0] }
[0] }

环境信息:

  • Node.js: v18.16.1
  • sequelize: v6.31.1

复现步骤:

  • 进入项目服务端文件夹
  • 执行npm start

解决方案

这个错误的核心原因是Sequelize连接数据库时,读取到的主机地址(hostname)为undefined,导致DNS无法解析目标地址。以下是具体排查和修复步骤:

1. 检查数据库连接配置文件(db.js)

打开服务端的db.js文件,定位Sequelize初始化代码段:

  • 若通过环境变量读取主机地址(如process.env.DB_HOST),检查变量名拼写是否正确(避免大小写错误或拼写失误)。
  • 若为硬编码值,确认填写了有效主机地址(如localhost、127.0.0.1或远程数据库IP),而非留空或undefined。

示例正确初始化代码:

const sequelize = new Sequelize(
  process.env.DB_NAME,
  process.env.DB_USER,
  process.env.DB_PASSWORD,
  {
    host: process.env.DB_HOST || 'localhost',
    dialect: 'postgres' // 根据你的数据库类型调整
  }
);

2. 确认环境变量文件(.env)配置

  • 检查服务端文件夹下是否存在.env文件,若缺失则新建。
  • 在.env中添加正确的数据库配置项:
    DB_HOST=localhost
    DB_NAME=你的数据库名
    DB_USER=你的数据库用户名
    DB_PASSWORD=你的数据库密码
    
  • 注意:.env通常会被.gitignore排除以保障安全,需自行在本地创建该文件。

3. 确保环境变量被正确加载

在db.js的最顶部,确认已引入并调用dotenv加载环境变量:

require('dotenv').config();

若未安装dotenv,先执行安装命令:

npm install dotenv

4. 验证环境变量读取有效性

在db.js中添加日志代码,测试环境变量是否正常读取:

console.log('DB Host:', process.env.DB_HOST);

执行npm start后,若输出为undefined,说明环境变量未正确加载,需检查.env文件路径是否正确,或dotenv调用是否在配置读取之前。


内容的提问来源于stack exchange,提问作者Byron Martinez

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.11 05:32:35