类型错误:expressJwt 不是函数
Posted
技术标签:
【中文标题】类型错误:expressJwt 不是函数【英文标题】:TypeError: expressJwt is not a function 【发布时间】:2020-12-19 01:09:34 【问题描述】:我正在尝试在我的应用中编写用于用户授权的中间件。我使用此功能来检查路线是否需要登录。 代码如下:
const expressJwt = require('express-jwt');
exports.requireSignin = expressJwt(
secret: process.env.JWT_SECRET,
algorithms: ["HS256"],
userProperty: "auth",);
但是,我收到以下错误:
TypeError: expressJwt is not a function at Object.<anonymous> (path to the file)\
可能是什么问题?其他答案似乎都没有帮助。
【问题讨论】:
【参考方案1】:带大括号
const expressJwt = require('express-jwt');
^ ^
您正在尝试进行对象解构,它在express-jwt
模块导出的对象中查找名为expressJwt
的字段。但是根据错误信息,对象没有这样的字段。
根据express-jwt
's documentation,您不需要解构,只需将导出的对象分配给变量,因此请尝试以下形式(不带大括号):
const expressJwt = require('express-jwt');
【讨论】:
它似乎解决了这个错误,但我得到了另一个更详细的错误:错误:Route.get() 需要一个回调函数但得到了一个 [object Undefined] 如果我的帖子回答了您最初的问题,请接受。您评论中的错误是另一种情况,上面的示例代码中不存在Route.get()
,因此请将其作为新问题发布。 :)【参考方案2】:
参考readme。
如果我没记错的话,正确的函数名为 jwt
//const expressJwt = require('express-jwt');
//use this
var jwt = require('express-jwt');
【讨论】:
以上是关于类型错误:expressJwt 不是函数的主要内容,如果未能解决你的问题,请参考以下文章