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

Express.js中TypeError: require(...) is not a function报错求助

解决 TypeError: require(...) is not a function(pg-promise 相关)

这个错误是因为你使用的 pg-promise 版本和代码的导入方式不兼容导致的,核心是v10+版本的导出规则发生了变化。

问题根源

在 pg-promise v9及更早版本中,模块默认导出一个可直接调用的函数,所以你原来的代码const pgp = require("pg-promise")(options)能正常运行。但从v10版本开始,模块采用了更规范的CommonJS导出方式:require("pg-promise")返回的是一个包含default属性的模块对象,而非直接的可调用函数,直接调用自然会抛出TypeError。

解决方案

你有两种选择来修复这个问题:

方案1:适配pg-promise v10+版本

修改导入代码,明确获取default导出的函数:

// 方式一:直接获取default并调用
const pgp = require("pg-promise").default(options);

// 方式二:先导入模块,再调用default函数
const pgPromise = require("pg-promise");
const pgp = pgPromise.default(options);

方案2:降级到pg-promise v9版本

如果你想保留现有代码结构不变,可以将pg-promise降级到v9.x系列,运行以下命令:

npm install pg-promise@9.x --save

验证步骤

  1. 打开项目的package.json文件,查看pg-promise的版本号,确认是v10+还是旧版本
  2. 根据版本选择对应的方案修改代码或执行降级命令
  3. 重新运行npm start,问题应该就能解决了

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.27 09:56:38