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

Node.js TypeError:expressJWT is not a function问题求助

问题:TypeError: expressJWT is not a function

我是Node.js新手,遇到一个无法理解的错误。以下是相关配置和代码:

package.json配置

{"name": "pangolinapp","version": "1.0.0","description": "","main": "index.js","scripts": {"test": "echo \"Error: no test specified\" && exit 1"},"keywords": [],"author": "","license": "ISC","dependencies": {"bcryptjs": "^2.4.3","body-parser": "^1.20.1","chai": "^4.3.6","cookie-parser": "^1.4.6","cors": "^2.8.5","crypto": "^1.0.1","dotenv": "^16.0.3","express": "^4.18.2","express-jwt": "^7.7.7","express-validator": "^6.14.2","formidable": "^2.1.1","joi": "^17.7.0","jsonwebtoken": "^8.5.1","lodash": "^4.17.21","mongoose": "^6.7.0","multer": "^1.4.5-lts.1","passport": "^0.6.0","passport-local": "^1.0.0","uuid": "^9.0.0"}}

auth.js中间件代码

const expressJWT = require("express-jwt");require('dotenv').config();
exports.requireSignIn = expressJWT({secret: process.env.JWT_SECRET,algorithms: ["HS256"],userProperty: 'auth'  })
exports.isAuth = (req, res, next) => {
let user = req.profile && req.auth && (req.profile._id == req.auth._id)
if(!user) {return res.status(403).json({error: "Acess denied"}) }
const jwt = require('jsonwebtoken');next()}
exports.isAdmin = (req, res, next) => {if(req.auth.role == 0 ){return res.status(403).json({error: "Admin resource, access denied"})}next()}

报错信息

exports.requireSignIn = expressJWT({                    ^TypeError: expressJWT is not a function

我已导入express-jwt模块并尝试用其创建中间件,且参考了官方文档,但仍无法解决该问题,请求帮助。


解决方案

问题出在express-jwt的版本导出方式上:你安装的是v7.7.7版本,该版本不再默认导出核心函数,而是通过expressjwt属性暴露。

修改auth.js的导入语句即可解决:

// 解构赋值导入,推荐写法
const { expressjwt: expressJWT } = require("express-jwt");
// 或者直接取属性
// const expressJWT = require("express-jwt").expressjwt;

修改后原有的requireSignIn配置无需改动,就能正常调用expressJWT函数生成中间件。

如果后续想使用ES模块写法,可以在package.json中添加"type": "module",然后用以下方式导入:

import { expressjwt } from 'express-jwt';

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.07 18:45:33