所以我正在使用koa2, 如果此请求是多部分类型,请相信我需要处理
ctx.request.body.fields
否则我处理
ctx.request.body
那么区分和处理这两种情况的最佳方法是什么?
答案 0 :(得分:0)
我想我的观点是,如果您需要检查表单提交以及其他活动,那么您的端点可能做得有点多吗?当然,这在很大程度上取决于您的用例,但保持表单数据和其他内容类型分开可能是一个更清晰的API。
话虽如此,我认为没有理由比检查fields
的存在更复杂。 koa-body
是一个很好的解决方法。
您可能想要考虑的一件事是使用中间件堆栈。例如,只有在提交表单但允许其他操作发生时才会执行操作:
router.post('/', koaBody({ multipart: true }),
async (ctx, next) => {
if (ctx.request.body.fields) {
// Handle form if present
}
await next() // Pass control down the stack
}
))