2014-10-01 39 views
1

我创建了这个小例子来找出表单数据在哪里结束,但我无法弄清楚在哪里。 我希望找到在req.body一些数据,但你看,如果你运行的例子,如果出来空:/Node.js在哪里形成数据?

var connect = require('connect'); 
var bodyParser = require('body-parser'); 

var app = connect(); 

app.use(bodyParser.urlencoded({'extended': false})); 

app.use(function(req, res){ 
    console.log(req); 
    res.end("<html><form method='post'enctype='multipart/form-data'><input type='text' name='file_caption' /><input type='file' name='file_file' /><input type='submit' /></form></html>"); 
}); 

app.listen(3000); 

的事情是,如果我使用连接打杂访问输入和文件我找到他们了。但为什么它们在请求对象中不可见?

回答

0

body-parser不提供任何中间件来处理多部分请求。为此,您需要类似multer(多部分只有),busboy/connect-busboymultiparty

+0

我知道,我已经看到它的工作。但我想知道数据在哪里?我不能在请求中看到它,这是唯一一个connect-busboy(和所有其他人)必须使用的东西,对吧? – Gustav 2014-10-01 21:19:41

+0

如果您只使用“body-parser”中间件和“multipart/form-data”表单提交,就不可能看到填充的'req.body'。 'body-parser'只能识别'application/x-www-form-urlencoded'表单提交。 – mscdex 2014-10-01 21:24:07

+0

我明白了。但数据在哪里?!?各种中间件都会解析一些数据,我认为这些数据会出现在请求中,但我无法找到它。 – Gustav 2014-10-01 21:30:28