2012-02-28 4 views
1

node.js를 사용하여 슈퍼 단순 파일 서버를 구축하고 있습니다. 내가 (올바른 암호로) 파일을 업로드 할 때 accessible here.Node.js 파일 업로드가 작동하지 않습니다.

내 서버를 호스팅하는 dotcloud을 사용하고

, 내 코드는 'Error, incorrect password!'를 반환합니다. 그런 다음 성공의 변수는 아니다 '(..... 파일) fs.rename'

var success = false; 
     var form = new formidable.IncomingForm(); 
     form.parse(req, function(err,fields, files) { 
      console.log("Password: " + fields.password); 
    if(fields.password!="poop") { 
     return; 
    } 
     fs.rename(files.upload.path, files.upload.name, function (err) { }); 
     success = true; 
      res.writeHead(200, {'content-type': 'text/plain'}); 
      res.write('received upload:\n\n'); 
      res.end(); 
     }); 
     req.on('end', function() { 
      // empty 200 OK response for now 
     if(success) { 
       res.writeHead(302, { 'location': '/' }); 
      } else { 
     res.writeHead(200, {'content-type': 'text/plain'}); 
       res.write('Error, incorrect password!\n'); 
     } 
      res.end(); 
     }); 

내가 내 코드에 실패 생각 : 아래의 코드를 살펴 보자, 나는 그 이유를 설명하겠습니다 true로 설정하십시오. 내 코드는 로컬 node.js 설치에서 작동합니다. dotcloud 또는 무언가의 쓰기 권한을 요청해야합니까?

+0

P. 나는 업로드를하기 위해 무서운 방법을 사용하고있다. –

+1

예, 노드 응용 프로그램이 호스트 시스템에 쓰고있는 경우 dotcloud에서 쓰기 권한을 요청해야합니다. – jcolebrand

+0

어떻게해야합니까? 빠른 답변을 보내 주셔서 감사합니다! –

답변

0

end 이벤트가 으로 나오기 전에 formidable이 양식을 구문 분석합니다.

정확한 이벤트 디스패치 순서는 Node.js 문서에 정의되어 있지 않습니다. 따라서 Node.js 버전 및/또는 플랫폼에 따라 다른 순서로 처리됩니다.

그런 경우라면 successfalse이고 양식을 실제로 파싱하기 전에 답장을 보냅니다.

아마도 구문 분석 함수에서 오류를 처리해야합니까?

관련 문제