【发布时间】:2017-10-29 16:29:03
【问题描述】:
我正在研究 Express 以创建一个简单的 JSON API,但我不确定如何组织我的输入参数验证和错误处理。错误可能源自验证步骤,也可能源自数据库访问步骤。这是我目前所拥有的:
router.use(function(req, res, next) {
validate(req.query).then(function() {
next()
}).catch(function(e) {
next(e)
})
})
router.get("/", function(req, res, next) {
someDatabaseAccess(req.query).then(function(results) {
res.json(results)
}).catch(function(e) {
next(e)
})
})
router.use(function(e, req, res, next) {
// ... (handling specific errors)
res.status(400)
res.json(someDummyResponse(e))
})
验证如下所示:
const validate = function(q) {
return new Promise(function(resolve, reject) {
if (q.someParameter) {
if (somethingWrong(q.someParameter)) {
reject(new Error("Something wrong!"))
}
}
resolve()
})
}
这有意义吗?有什么我应该做的不同/不那么复杂的事情吗?
【问题讨论】:
标签: javascript express ecmascript-6 es6-promise