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

为何出现TypeError: expressJwt is not a function错误?该如何修复?

解决express-jwt的TypeError: expressJwt is not a function错误

问题代码(jwt.js)

const expressJwt = require('express-jwt')

function authJwt() {
    const secret = process.env.secret
    return expressJwt({
        secret,
        algorithms: ['HS256']
    })
}

module.exports = authJwt

终端报错信息

C:\code-wldn\final-project\wldn-api\helpers\jwt.js:5
return expressJwt({
       ^

TypeError: expressJwt is not a function
    at authJwt (C:\code-wldn\final-project\wldn-api\helpers\jwt.js:5:12)
    at Object.<anonymous> (C:\code-wldn\final-project\wldn-api\app.js:18:9)

已尝试操作

  • 确认jwt.js文件中正确导入express-jwt并作为函数使用,预期错误修复、应用正常运行,但问题仍未解决

解决方案

这个错误是因为express-jwt v4及以上版本改变了导出方式,默认导出不再是直接可用的函数,需要调整导入方式:

方案1:解构导入正确的方法名

修改jwt.js的导入语句为:

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

注意这里是小写的expressjwt,新版本将核心方法以该名称导出,我们通过重命名保持原有代码的变量名不变。

方案2:获取default导出

如果习惯原有导入写法,也可以直接取default导出:

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

修改后重新运行项目,即可解决该类型错误。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.29 19:10:13