2013-03-12 51 views
1

我想知道什么样的内容类型请求req支持app.post('/',function(req,res))。我从HTML表单发送数据。它是否一定是JSON格式,还是可以直接从表单发送?expressJS的请求体的类型

我已经将json格式的数据从表单发送到服务器,但是当我访问req.body.{name attribute of inout element}时,它给出了未定义的错误无效属性。

回答

1

Express支持这两种格式。但是,它可以工作之前,你需要使用bodyParser中间件,否则req.body不会填充:

app.use(express.bodyParser()); 

这里有一个最小的应用与接受张贴到它的形式和JSON数据:

var express = require('express'); 
var app  = express(); 

app.use(express.bodyParser()); 
app.post('/submit', function(req, res) { 
    res.send('You submitted: ' + JSON.stringify(req.body)); 
}); 

app.listen(3012); 

您需要确保该bodyParser中间件加载之前你的路由,否则要求提供给您的路线不会被bodyParser中间件第一和y进行处理我们的路由处理程序将无法使用req.body

+0

我也添加了那段代码,但它仍然不起作用 – 2013-03-12 17:41:39

+0

我给我的答案添加了一个示例。 – robertklep 2013-03-12 18:17:01