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

解决PostgreSQL用户密码认证失败:React+Node.js待办应用报错

PostgreSQL密码认证失败问题排查方案

核心问题分析

错误提示的用户是IRHA TRADERS,但你配置的数据库用户是postgres,说明程序没有正确读取.env里的配置,转而使用当前系统的用户名进行连接,最终导致认证失败。


1. 修复.env文件格式错误

你的.env文件存在语法错误:变量值后带逗号、USERNAME值前有空格,这些都会导致环境变量读取失败。修正后的.env应该是:

USERNAME=postgres
PASSWORD=james
HOST=localhost
DBPORT=5432
DATABASE=todoapp

注意:

  • 每个变量独立一行,末尾不要加逗号
  • 变量名和值之间不要留空格
  • 新增DATABASE字段指定你创建的todoapp数据库

2. 确保数据库连接配置正确读取环境变量

检查你的db.js文件(未提供但为关键配置文件),需正确使用dotenv加载环境变量并配置连接池:
首先安装dotenv依赖(若未安装):

npm install dotenv

然后修改db.js:

const { Pool } = require('pg');
require('dotenv').config(); // 必须在最顶部加载环境变量

const pool = new Pool({
  user: process.env.USERNAME,
  password: process.env.PASSWORD,
  host: process.env.HOST,
  port: process.env.DBPORT,
  database: process.env.DATABASE // 指定目标数据库
});

module.exports = pool;

若之前未配置database字段,程序会默认连接与用户名同名的数据库,而你创建的是todoapp,这也会导致连接异常。

3. 验证PostgreSQL用户权限

登录PostgreSQL命令行,确认postgres用户可以访问todoapp数据库:

psql -U postgres

输入密码james后,执行以下SQL授予权限:

GRANT ALL PRIVILEGES ON DATABASE todoapp TO postgres;
GRANT ALL PRIVILEGES ON TABLE todos, users TO postgres;

4. 重启Node.js服务器

修改配置后必须重启你的Express服务器,否则新的配置不会生效。


内容的提问来源于stack exchange,提问作者Mudassir Ali

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.22 21:51:05