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

为何出现express_jwt__WEBPACK_IMPORTED_MODULE_2___default(...)不是函数的错误?

问题分析与解决方案

这个错误的核心原因是你使用的express-jwt版本和代码中的导入、调用方式不兼容。

从v7版本开始,express-jwt的导出结构和命名规则发生了变化:

  • 原有的默认导出函数被移除,改为导出包含expressjwt(小写j)方法的对象
  • 不再支持import expressJwt from 'express-jwt'这种默认导入后直接调用的方式

解决方案一:适配新版本express-jwt(推荐)

修改auth.controller.js中的导入和调用代码:

  1. 替换导入语句:
// 替换原来的导入
import { expressjwt } from 'express-jwt'
  1. 修改requireSignin的定义:
const requireSignin = expressjwt({
  secret: config.jwtSecret,
  userProperty: 'auth'
})

注意这里是小写的expressjwt,和导入的名称保持一致。

解决方案二:降级到兼容的旧版本

如果你不想修改代码,可以将express-jwt降级到v6.x版本(比如v6.1.0),执行以下命令:

npm install express-jwt@6.1.0

降级后,你原来的导入和调用代码就能正常工作了。

为什么你之前尝试的import { expressJwt } from 'express-jwt'无效?

因为v7+版本的express-jwt中,导出的方法名称是小写的expressjwt,而不是大写J的expressJwt,所以你导入的名称和实际导出的方法不匹配,导致调用时仍然报错。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.01 01:20:18