如何区分koa ctx是multipart/form-data类型还是不是?
How to distinguish koa ctx is multipart/form-data type or not?
所以我正在使用 koa2,
如果这个请求是多部分类型,相信我需要处理
ctx.request.body.fields
否则我处理
ctx.request.body
那么区分和处理这两种情况的最佳方法是什么?
我想我的观点是,如果您需要检查表单提交以及其他 activity,那么您的端点可能做得有点多?当然,这在很大程度上取决于您的用例,但是将表单数据和其他内容类型分开可能会更清楚 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
}
))
所以我正在使用 koa2, 如果这个请求是多部分类型,相信我需要处理
ctx.request.body.fields
否则我处理
ctx.request.body
那么区分和处理这两种情况的最佳方法是什么?
我想我的观点是,如果您需要检查表单提交以及其他 activity,那么您的端点可能做得有点多?当然,这在很大程度上取决于您的用例,但是将表单数据和其他内容类型分开可能会更清楚 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
}
))