Правильный способ обработки посылок и ответа сервера
Я пытаюсь улучшить свой код в 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.'});
})