2012-11-15 84 views
3

我正在使用formidable包上傳文件。 這是我的服務器端代碼。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()方法不是invoke.Please給這個問題的解決方案。

回答

0

請添加錯誤處理程序否則發送錯誤信息很難得到答案。

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

formidable文檔:doc

+0

在表單方法中沒有打印任何內容。 –

6

這可能是你需要清除體內解析器

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

這就是我的情況。非常感謝! – James

0

呼叫form.parse(...)所有on(...)事件之後。

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) { }); 
}); 
相關問題