本地部署Node.js+MongoDB时遇expressJwt不是函数的TypeError问题求助
解决express-jwt "is not a function" 错误
错误原因
你使用的是express-jwt v4及以上版本,该版本起默认导出不再是直接可调用的函数,而是包含default属性的对象,直接调用expressJwt({ secret: SECRET })自然会触发类型错误。
修复方案
有两种可行的修复方式:
方案1:调整导入语句(官方推荐)
express-jwt v4重构后推荐使用解构导入,且函数名改为全小写的expressjwt:
import jwt from 'jsonwebtoken'; import { expressjwt } from 'express-jwt'; const TOKENTIME = 60*60*24*90; const SECRET = "W3 CHAT 4 FUN"; let authenticate = expressjwt({ secret: SECRET });
方案2:调用默认导出的.default属性
如果不想修改导入方式,可以直接访问模块默认导出的default属性来获取函数:
import jwt from 'jsonwebtoken'; import expressJwt from 'express-jwt'; const TOKENTIME = 60*60*24*90; const SECRET = "W3 CHAT 4 FUN"; let authenticate = expressJwt.default({ secret: SECRET });
内容的提问来源于stack exchange,提问作者shoaib alam
相关产品推荐
相关产品推荐

