【发布时间】:2019-02-14 02:56:15
【问题描述】:
我正在编写一个 API,但在处理错误时遇到了一些问题。我不确定的是第一个代码 sn-p 是否足够,或者我是否应该将它与第二个代码 sn-p 中的 promise 混合使用。任何帮助将非常感激!
try {
var decoded = jwt.verify(req.params.token, config.keys.secret);
var user = await models.user.findById(decoded.userId);
user.active = true;
await user.save();
res.status(201).json({user, 'stuff': decoded.jti});
} catch (error) {
next(error);
}
第二个代码sn-p:
try {
var decoded = jwt.verify(req.params.token, config.keys.secret);
var user = models.user.findById(decoded.userId).then(() => {
}).catch((error) => {
});
user.active = true;
await user.save().then(() => {
}).catch((error) => {
})
res.status(201).json({user, 'stuff': decoded.jti});
} catch (error) {
next(error);
}
【问题讨论】:
-
第一个看起来很好。
-
我读过一些文章,建议每个请求都需要一个 try/catch 块。这有什么道理吗?
-
视情况而定。是,如果:您想在每次异步调用后做出不同的反应吗? (例如,每个错误案例的不同响应)否如果:您是否希望仅在解决所有异步调用后才继续响应?
标签: node.js express asynchronous error-handling promise