2017-05-18 4 views
0

docs에서 복사하여 붙여 넣은 코드를 사용하면 업로드시 오류가 발생하지 않습니다 (오류가 발생하면 오류와 함께 500의 HTTP 상태를 반환 함) 메시지).Sails skipper가 자동으로 실패 함

req.file('avatar').upload(function (err, uploadedFiles) { 
    if (err) return res.send(500, err); 
    return res.json({ 
     message: uploadedFiles.length + ' file(s) uploaded successfully!', 
     files: uploadedFiles 
    }); 
}); 

그러나, uploadedFiles 내가 로컬 디스크 어댑터를 사용하고 0

의 길이가 끝납니다.

무엇이 잘못 될지 추측 할 수 있습니까?

+0

고객 측 코드도 제공 할 수 있습니까? – Glen

+0

@Glen 사실, 문제는 클라이언트 쪽에서 온 것 같습니다. React 구성 요소에 내장 된 [dropzone] (http://www.dropzonejs.com/) 요소입니다. 나는 dropzone 요소 [여기]에 관한 문제에 대한 별도의 질문을하고있다. (http://stackoverflow.com/questions/44039671/dropzone-sending-a-request-with-application-x-www-form-urlencoded- 그대로 - 계속 # 1 comment75105380_44039671). 그러나이 질문에서 저는 Sails Skipper가 어떤 에러도 발생시키지 않고 0의 길이를 가진'uploadedFiles'를 가질 수 있는지 궁금합니다. – RyanQuey

+0

내 생각에 실제로 아무것도 업로드되지 않는다는 것을 의미합니다. 성공하지만 파일이 반환되지 않습니다. 그러나 다른 것이 그것을 일으킬 수 있는지를 아는 것이 도움이 될 것입니다. – RyanQuey

답변

2

skipper github. 빈 콘텐츠 길이를 오류로 분류하지 않습니다. 모든 단단한 신체 파싱 작업을 건너 뜁니다.

if (
    // If we have a content-length header... 
    !_.isUndefined(req.headers['content-length']) && 
    // And the content length is declared to be zero... 
    (req.headers['content-length'] === 0 || req.headers['content-length'] === '0')) { 
    // Then we set the body to any empty object 
    // and skip all this body-parsing mishegoss. 
    req.body = {}; 
    return next(); 
}