TypeError:expressJwt不是函数

问题描述

我正在尝试在我的应用程序中编写用于用户授权的中间件。我使用此功能来检查是否需要登录路由。 代码如下:

@H_502_2@x.job.mask(x.job==' ').factorize()[0] Out[210]: array([ 0,1,-1,2,2],dtype=int32)

但是,出现以下错误

@H_502_2@const { expressJwt } = require('express-jwt'); exports.requireSignin = expressJwt({ secret: process.env.JWT_SECRET,algorithms: ["HS256"],userProperty: "auth",});

可能是什么问题?其他答案似乎都没有帮助。

解决方法

带有大括号

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

您正在尝试执行对象解构,该操作将在expressJwt模块导出的对象中查找名为express-jwt的字段。但是根据错误消息,对象没有这样的字段。

根据express-jwt's documentation,您不需要进行结构分解,而只需将导出的对象分配给变量,因此请尝试以下形式(不带大括号):

const expressJwt = require('express-jwt');
,

参考readme

如果我没记错的话,正确的函数命名为jwt

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

//use this 
var jwt = require('express-jwt');