node.js - (节点:12728)UnhandledPromiseRejectionWarning:TypeError:无法读取 null 的属性“名称”
问题描述
我正在尝试检查令牌是否已过期,并且当 JWT 过期时我得到正确的结果,但是当用户令牌未过期时我收到错误消息。
const verified = jwt.verify(token, process.env.SECRET, (err) => {
if (err.name === "TokenExpiredError") {
return res.status(403).send({
status: 403,
message: "TokenExpired"
});
}
});
req.tokenData = verified;
当令牌未过期时,我收到以下错误:
(节点:12728)UnhandledPromiseRejectionWarning:TypeError:无法读取 null 的属性“名称”
解决方案
您需要先检查 err,如果err
是 falsy,则表示没有错误。否则,您可以继续使用您的代码检查错误名称。
const verified = jwt.verify(token, process.env.SECRET, (err) => {
if (err) {
if (err.name === "TokenExpiredError") {
return res.status(403).send({
status: 403,
message: "TokenExpired"
});
}
} else {
// token is good
}
})
推荐阅读
- php - 限制加入 MySQL
- gatsby - 在 Netlify 上的构建之间保留 gatsby-images
- python - 出现错误:只有一个元素张量可以转换为 Python 标量
- tensorflow - 使用带有分层抽样的 tensorflow 数据集
- c# - 我如何从这个 MVC 架构中获取参数?
- javascript - 防止“未捕获(承诺)”警告。如何避免'catch'块?ES6 承诺与 Q 承诺
- scripting - CTRL + W 热键不起作用
- python - 在 Paramiko 中选择路由实例
- codenameone - 避免使用 Codename One 覆盖 build.xml
- python - 如何在 Keras 中使用 Conv2D 和 LSTM 层?