java - 类型错误:expressJwt 不是函数
问题描述
我正在尝试在我的应用程序中编写用于用户授权的中间件。我使用这个函数来检查一个路由是否需要登录。代码如下:
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)\
可能是什么问题呢?其他答案似乎都没有帮助。
解决方案
带大括号
const { expressJwt } = require('express-jwt');
^ ^
您正在尝试进行对象解构,它查找在模块expressJwt
导出的对象中命名的字段。express-jwt
但是根据错误消息,对象没有这样的字段。
根据express-jwt
的文档,您不需要解构,只需将导出的对象分配给变量,因此请尝试以下形式(不带大括号):
const expressJwt = require('express-jwt');
推荐阅读
- c++ - c++字符串从文件读取到向量字符串
- sonarqube - SonarQube 未显示 PMD 违规
- azure - Azure SDK 使用 CLI 凭据或托管标识
- c++ - 最接近平均 C++ 的数字
- python - Python Dataset Class + PyTorch Dataloader:卡在__getitem__,Testing时如何获取Index、Label等?
- typescript - Firebase 查询并非所有文档都包含请求的字段
- python - 如何使用 Oracle 数据库在 sqlalchemy 中设置查询超时?
- python - 带有 Plotly 的分类散点图
- c# - Specflow:Error:Result collection has not started in test explorer
- mysql - 如何获得表的排列?