启动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
相关产品推荐
相关产品推荐

