代码之家  ›  专栏  ›  技术社区  ›  PW Kad

异步/等待中断执行并从快速路由返回403

  •  0
  • PW Kad  · 技术社区  · 6 年前

    在异步/等待版本中,如果从 checkUserRouteRequirements 例如和 403 res.json(result); 也。

    我宁愿要 .catch validateRoute 方法的可重用性,因为可能有数百个路由,当然也没有尝试发送两次头的错误。

    异步/等待

    router.get('/', async (req, res, next) => {
      await validateRoute(roles.Approved, req, res, next);
      // await does not break code execution
      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({});
      });
    }
    

    我也不喜欢到处尝试/抓住,也不喜欢抛出必须抓住的错误。

    任何建议,谢谢!

    0 回复  |  直到 6 年前