【发布时间】:2017-10-26 11:03:48
【问题描述】:
我在 express 和 Promises 中遇到错误。
我正在尝试用最好的方法来处理错误,在我的应用程序中创建一个标准的方法。
但是,我遇到了一个问题:
validate(req.body)
.catch(e => next(new APIError(400, e)))
.then(validatedbody => searchdatabase(validatedbody))
.then(dbResult => validate(dbResult))
.catch(e => next(new APIError(500, e)))
// results from db should always be valid
.then(validatedDbResult => res.json(validatedDbResult))
如果正文错误,我们应该停止并发送错误,错误将使用错误处理中间件发送,但是由于promise的工作原理,它也会继续下一步(在数据库中搜索) .
我该怎么办? 我是否首先正确处理错误?
非常感谢, 吉尔索
【问题讨论】:
-
APIError中的命名参数?我认为这行不通。 -
是的,纠正它,这是一个例子,它不是我的实际代码
标签: node.js express error-handling promise