2016-07-28 63 views
1

我爲了從客戶端接收數據的唯一目的而製作了超級簡單的代碼。無法通過快遞方式從郵政方式獲取信息

var express = require('express'); 
var app = express(); 
var bodyParser = require('body-parser'); 
app.use(bodyParser.json()); 
var PORT = 80; 

app.get('/',function(req,res){ 
res.send('<form action="/" method="post"> <input type="text"name="firstname" value="Mickey"><input type="submit" value="Submit"> </form>'); 
}); 

app.post('/', function (req, res) { 
console.log(req.body.firstname); 
res.send('POST request to the homepage'); 
}); 

app.listen(PORT,() => console.log("Listening on port "+PORT)); 

就是這樣。但是當我運行它時,它說req.body.firstname是未定義的。 我在做什麼錯?

+0

這是如何使用Node.js或其他JS庫?如果是這樣的話,將它包含在標籤中 –

+0

'app.get('/',...)'應該可能返回整個網頁,而不僅僅是一個表單,除非該請求只針對ajax調用,而不針對瀏覽器。而且,如果是這樣的話,那麼你可能也有CORS問題。 – jfriend00

+0

看起來你在這裏缺少一個空格:'name'屬性前的' jfriend00

回答

2

要解析表單數據,您必須使用bodyParser.urlencoded中間件。

添加以下代碼,您處理POST請求之前:

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