我看到了以下代碼:
const User = require('../model/User');
const jwt = require('jsonwebtoken');
const handleRefreshToken = async (req, res) => {
const cookies = req.cookies;
if (!cookies?.jwt) return res.sendStatus(401);
const refreshToken = cookies.jwt;
const foundUser = await User.findOne({ refreshToken }).exec();
if (!foundUser) return res.sendStatus(403); //Forbidden
// evaluate jwt
jwt.verify(
refreshToken,
process.env.REFRESH_TOKEN_SECRET,
(err, decoded) => {
if (err || foundUser.username !== decoded.username) return res.sendStatus(403);
const roles = Object.values(foundUser.roles);
const accessToken = jwt.sign(
{
"UserInfo": {
"username": decoded.username,
"roles": roles
}
},
process.env.ACCESS_TOKEN_SECRET,
{ expiresIn: '10s' }
);
res.json({ roles, accessToken })
}
);
}
module.exports = { handleRefreshToken }
而且我無法理解Object這行代碼中的內容:
const roles = Object.values(foundUser.roles);
我的意思是它是一個類的實體嗎?什么級別?它在哪里實體化?
這是Object指什么?
uj5u.com熱心網友回復:
Node.JS 中的物件是大括號內的任何東西,基本上是 JSON。如果你真的讀到它,Node.JS 中的所有東西實際上都是一個物件,但那是題外話。
那行代碼正在做的是找到foundUser,并獲取“角色”類別下的所有值,所以我假設它將發回找到的用戶擁有的所有角色。
如果您想研究更多,或者如果我不夠清楚,請查看此頁面:https ://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object
uj5u.com熱心網友回復:
它是全域物件類。
Object 類代表 JavaScript 的一種資料型別。
它用于存盤各種鍵控集合和更復雜的物體。ETC...
您可以閱讀Doc。
在你的情況下。
const roles = Object.values(foundUser.roles);
此Object.values()方法將回傳您的所有值user.roles
例子
const users = { roles: { key1: 'value1', key2: 'value2' } };
console.log(Object.values(users.roles));
// Return array [ value1, value2 ]
// Another Keys Example
console.log(Object.keys(users.roles));
// Return array [ key1, key2 ]
轉載請註明出處,本文鏈接:https://www.uj5u.com/qianduan/483562.html
標籤:javascript 节点.js 目的 句法
