2017-12-23 27 views
0

그래서 내가, 을 koa2을 사용하고, 그렇지 않으면 내가koa ctx를 구별하는 방법은 multipart/form-data 유형입니까, 아니면 아닙니다? 이 요청은 멀티 타입 인 경우

ctx.request.body 

는 그래서이 둘을 구분하고 처리하는 가장 좋은 방법으로 처리 난

ctx.request.body.fields 

을 처리 할 필요가 생각 케이스?

+0

누구에게나 -1을주었습니다. 검색 할 항목을 알고 있으면 여기에서 질문하지 않습니다. 이러한 키워드를 기반으로 내 질문을 이해할 수없는 경우 코드 작성 자격이 없습니다. – user3552178

+0

'ctx.req.headers'를 확인하고'Content-Type'을 볼 수 없습니까? – saadq

+0

@saadq 내가 지금 ctx.request.body.fields가 정의되지 않았는지 여부를 확인할 수 있습니다. 하지만 koa-body, koa-bodyparser, koa-better-body ... 이렇게 많은 패키지가 있습니다.이 작업을 수행하는 가장 좋은 방법을 찾고 있습니다. – user3552178

답변

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 
    } 
))