2016-07-28 21 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 })); 
関連する問題