這是try…catch的好用法,還是我應(yīng)該把所有內(nèi)容都寫在try塊中?我試圖阻止嵌套的try…catch塊。
router.post('/refresh', async (req, res) => {
const refreshToken = req.body.token;
let decoded;
try {
decoded = jwt.verify(
refreshToken,
process.env.REFRESH_TOKEN_SECRET,
);
} catch(error) {
return res.sendStatus(401);
}
// … use decoded variable here
});
您永遠(yuǎn)不需要嵌套
try/catches
—一個(gè)catch()
將捕獲它下面的所有錯(cuò)誤。See https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Statements/try...catch
Specifically:
但是,如果您不確定
refreshToken
是否存在(這是一個(gè)不信任web瀏覽器的好例子),可以將其添加到捕獲錯(cuò)誤的塊中: