在异步/等待版本中,如果从
checkUserRouteRequirements
例如和
403
res.json(result);
也。
我宁愿要
.catch
在
validateRoute
方法的可重用性,因为可能有数百个路由,当然也没有尝试发送两次头的错误。
异步/等待
router.get('/', async (req, res, next) => {
await validateRoute(roles.Approved, req, res, next);
const result = await channelsService.getAll();
return res.json(result);
});
async function validateRoute(role, req, res, next) {
return checkUserRouteRequirements(req.user.sub, role).catch(error => {
res.status(403).json({});
});
}
承诺的
router.get('/', (req, res, next) => {
validateRoute(roles.Approved, req, res, next).then(() => {
channelsService.getAll().then(result => { return res.json(result) });
});
});
function validateRoute(role, req, res, next) {
return checkUserRouteRequirements(req.user.sub, role).catch(error => {
res.status(403).json({});
});
}
我也不喜欢到处尝试/抓住,也不喜欢抛出必须抓住的错误。
任何建议,谢谢!