2012-11-15 2 views
3

나는 강력한 패키지를 사용하여 파일을 업로드하고 있습니다. 이것은 내 서버 측 코드입니다.form.parse() 메소드가 node.js에서 호출하지 않습니다.

var formidable = require('formidable'), 
    http = require('http'), 
    util = require('util'); 
    app.post('/admin/uploads', function(req, res) { 
     console.log(req.files, req.fields);//It prints 
     var form = new formidable.IncomingForm(); 
     form.parse(req, function(err, fields, files) { 
     console.log("Inside form parse.");//its not printing 
     console.log(err, fields, files);//its not printing 
     }); 
    form.on('file', function(name, file) {console.log('file='+file);});//its not printing 
    form.on('error', function(err) { console.log(err); });//its not printing 
    form.on('aborted', function() { console.log('Aborted'); });//its not printing 
    console.log(form);//it prints 


    }); 

위의 코드에서 form.parse() 메소드는 호출되지 않습니다.이 문제에 대한 해결책을 제공해주십시오.

답변

0

오류 처리기를 추가하고 오류 메시지를 보내주십시오. 그렇지 않으면 대답을 얻기가 어렵습니다.

form.on('error', function(err) { console.log(err); }); 
form.on('aborted', function() { console.log('Aborted'); }); 

formidable 문서를 참조하십시오 : doc

+0

양식 메서드에는 아무 것도 인쇄되지 않습니다. –

6

그것은 당신이 모든 on(...) 이벤트 후 몸 파서에게

delete app.use(express.bodyParser()); 
+0

그건 내 경우에 정확히 이유가되었습니다. 고마워요! – James

0

전화 form.parse(...)을 제거 할 필요가있을 수 있습니다.

app.post('/admin/uploads', function(req, res) { 
    var form = new formidable.IncomingForm(); 
    form.on('file', function(name, file) { }); 
    form.on('error', function(err) { }); 
    form.on('aborted', function() { }); 
    form.parse(req, function(err, fields, files) { }); 
});