TypeError: expressJwt is not a function
TypeError: expressJwt is not a function
我正在尝试在我的应用程序中编写用于用户授权的中间件。我使用此功能来检查路线是否需要登录。
代码如下:
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)\
可能是什么问题? None 的其他答案似乎有帮助。
加上大括号
const { expressJwt } = require('express-jwt');
^ ^
您正在尝试执行 对象解构,它在 express-jwt
模块导出的对象中查找名为 expressJwt
的字段。但是根据报错提示object没有such field.
根据 express-jwt
's documentation,您不需要解构,只需将导出的对象分配给一个变量,因此请尝试以下形式(不带大括号):
const expressJwt = require('express-jwt');
参考 readme.
如果我没记错的话正确的函数名为jwt
//const { expressJwt } = require('express-jwt');
//use this
var jwt = require('express-jwt');
我尝试了在多个编程论坛上找到的所有可能的解决方案,但没有任何效果,所以我只是将我的 express-jwt
版本降级到 5.3.1
并且它开始完美运行,所以这意味着错误在新更新,只需使用 npm uninstall express-jwt
卸载当前版本并重新安装 npm I express-jwt@5.3.1
,它会有所帮助。
如果版本大于 7.x,请按照文档所述使用它:
const { expressjwt: jwt } = require("express-jwt");
我正在尝试在我的应用程序中编写用于用户授权的中间件。我使用此功能来检查路线是否需要登录。 代码如下:
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)\
可能是什么问题? None 的其他答案似乎有帮助。
加上大括号
const { expressJwt } = require('express-jwt');
^ ^
您正在尝试执行 对象解构,它在 express-jwt
模块导出的对象中查找名为 expressJwt
的字段。但是根据报错提示object没有such field.
根据 express-jwt
's documentation,您不需要解构,只需将导出的对象分配给一个变量,因此请尝试以下形式(不带大括号):
const expressJwt = require('express-jwt');
参考 readme.
如果我没记错的话正确的函数名为jwt
//const { expressJwt } = require('express-jwt');
//use this
var jwt = require('express-jwt');
我尝试了在多个编程论坛上找到的所有可能的解决方案,但没有任何效果,所以我只是将我的 express-jwt
版本降级到 5.3.1
并且它开始完美运行,所以这意味着错误在新更新,只需使用 npm uninstall express-jwt
卸载当前版本并重新安装 npm I express-jwt@5.3.1
,它会有所帮助。
如果版本大于 7.x,请按照文档所述使用它:
const { expressjwt: jwt } = require("express-jwt");