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

如何用JavaScript正确连接PostgreSQL并解决两类连接相关错误

问题排查与修复方案

问题1:npm test 报错 "Error: no test specified"

原因

npm test 依赖项目根目录package.json里的scripts.test配置项,当前你的项目未配置该脚本,也未指定测试文件路径,导致npm无法识别要执行的测试逻辑。

修复方案

  1. 打开项目根目录的package.json文件
  2. 在scripts字段中添加test脚本,示例如下:
    {
      "scripts": {
        "test": "node your-test-file.js" // 替换为你的测试文件路径,比如测试文件是test.js就写node test.js
        // 若使用Jest等测试框架,可写成"test": "jest"
      }
    }
    
  3. 保存后重新执行npm test即可。如果暂时不需要测试,直接用node index.js运行数据库连接代码即可。

问题2:执行node index.js 报错 error: relation "countries" does not exist

原因

PostgreSQL对标识符(表名、列名等)的大小写规则:

  • 创建表时未用双引号包裹表名,PostgreSQL会自动将表名转为小写存储
  • 你的代码中写的是select * from Countries,PostgreSQL会自动把Countries转为小写countries查找,但如果表实际是用双引号创建的"Countries"(保留大写),就会匹配失败;也可先确认是否连接到了正确的simoo数据库。

修复方案

两种可选方式:

  1. 修改查询语句,用双引号包裹表名:
    将代码中的查询语句改为:

    .then(() => client.query('select * from "Countries"'))
    

    这样PostgreSQL会精确匹配大写表名。

  2. 统一表名为小写:
    若表是误创建为大写,可在PostgreSQL客户端执行重命名命令:

    ALTER TABLE "Countries" RENAME TO countries;
    

    之后代码中保持select * from countries即可正常执行。

额外验证步骤:登录PostgreSQL客户端连接simoo数据库,执行\dt命令查看所有表,确认表名的实际大小写。


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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.14 17:42:16