2013-03-12 55 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