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

使用express-jwt作为Express中间件时遇TypeError问题求助

解决TypeError: expressJwt is not a function错误

这个错误的核心原因是express-jwt v7及以上版本调整了导出方式,用CommonJS的require()直接导入时,拿到的不是预期的函数,得做适配处理。

修复方案1:调整导入语句

方式A:取默认导出

把原来的导入代码改成:

const expressJwt = require('express-jwt').default;

之后原有的中间件调用逻辑完全不用改,直接正常使用即可。

方式B:解构重命名

包本身导出的函数名为全小写的expressjwt,可以解构后重命名成你习惯的写法:

const { expressjwt: expressJwt } = require('express-jwt');

这种方式下,中间件的调用代码和你原来的写法保持一致。

修复方案2:降级到兼容版本

如果不想改动代码,也可以卸载当前版本,安装v6.x的稳定版:

npm uninstall express-jwt
npm install express-jwt@6.1.0

降级后,你原来的导入和调用逻辑就能正常运行。

额外注意事项

  1. 确保SECRET变量已定义,比如:
const SECRET = 'your-actual-secret-key'; // 替换成你自己的密钥
  1. /login接口依赖JSON请求体解析,要在所有路由和中间件前添加:
app.use(express.json());

否则req.body会是undefined,导致登录逻辑无法正常执行。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.03 15:43:22