Правильный способ обработки посылок и ответа сервера

Я пытаюсь улучшить свой код в node.js / sail.js, и я борюсь с ответом сервера в обещаниях.

Когда вы смотрите на первый.then функция, которую вы можете увидеть, что метод возвращаетfalse в случаеforbidden access или жеnotFound, Затем в следующем.then функции, которые я должен проверить, если тип возвращаемого значения ===false перейти к разделу и избежать отправки заголовков http дважды. Можно ли это как-то улучшить, чтобы пропустить все следующее.then методы в случае неудачи? Я могу бросить исключение, чтобы пойти в последнем.catch но тогда должно бытьcase переключаться между всеми возможными состояниями. (то есть запрещено, serverError или даже не найдено)

Notification.findOne({id: req.param('id')})
  .then(function(notification) {
    if (!notification) {
      res.notFound();
      return false;
    }

    if (notification.triggeredBy != req.session.user.id) {
      res.forbidden();
      return false;
    }

    return notification;
  })
  .then(function(notification) {
    if (notification === false) {
      return false;
    }

    return Notification.update(notification.id, actionUtil.parseValues(req));
  })
  .then(function(notification) {
    if (notification === false) {
      return false;
    }

    res.json(notification);
  })
  .catch(function(err) {
    sails.log(err);
    res.serverError({message: 'A server error occurred.'});
  })

Ответы на вопрос(2)

Ваш ответ на вопрос