【发布时间】:2016-01-01 08:49:46
【问题描述】:
有如下代码:
router.put('/:id', function(req, res, next) {
models.Task.find(req.params.id).then(function(task) {
return task.updateAttributes({
title: req.body.title,
description: req.body.description
});
}).then(function(task) {
res.json(task);
}).catch(function(err) {
var err = new Error('Cannot find Task');
err.status = 404;
next(err);
});
});
如您所见,我使用此路由通过 id 更新任务模型。因此,现在如果没有具有 id 的任务,我会捕获错误,并且我尝试更新 null 对象的属性(ReferenceError 错误类型)。因此,我刚刚向任务模型添加了验证,并且有机会使用空标题/描述(SequelizeValidationError 错误类型)更新任务。如何在我的 catch 块中处理此错误?我想为此错误设置“找不到任务”、“无法更新任务”消息。我应该拆分我的捕获块还是其他任何东西?提前致谢!
【问题讨论】:
-
我建议改用蓝鸟承诺,请参阅此答案以了解为什么 programmers.stackexchange.com/questions/278778/…
标签: javascript node.js express promise