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

启动Node.js服务器时遇TypeError: Client is not a constructor错误求解决

错误修复方案

核心问题:Client导入方式错误

你在db/dbConfig.js里直接把require("pg")的返回值赋值给Client,但pg模块导出的是一个包含多个属性的对象,Client只是其中一个属性,不是直接的构造函数,所以调用new Client()会报错。

修复步骤

方法1:解构导入Client

修改db/dbConfig.js的第一行:

const { Client } = require("pg");

方法2:显式获取Client属性

如果不习惯解构语法,也可以这么写:

const pg = require("pg");
const Client = pg.Client;

额外建议:优先使用连接池(Pool)

看你变量名写的是pool,可能原本想使用pg的连接池功能(更适合服务端高并发场景),那应该导入Pool而非Client:

const { Pool } = require("pg");

const pool = new Pool({
  host: "localhost",
  user: "postgres",
  port: 5432,
  password: "some_password",
  database: "blogs",
});

顺带修复server.js的小问题

你的server.js里port变量未定义,需要先声明端口号:

const port = 3000; // 替换成你实际想用的端口

app.listen(port, () => {
  console.log(`Example app listening on port ${port}`)
})

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.31 17:20:31