2016-12-30 3 views
3

としてrequest.bodyを取得して保持します:Expressは、私はこのようになりますAjaxリクエスト作ってい未定義のJSONオブジェクト

$.ajax({ 
     url: '/gen', 
     type: 'POST', 
     data: JSON.stringify({'one': 1, 'two':2}), 
     success: function(data) {console.log(this)} 
    }); 

と私の特急部分は次のようになります。

var express = require('express'); 
var app = express(); 
var router = express.Router(); 

app.set('port', (process.env.PORT || 5000)); 

router.post('/gen', function(req, res) { 
    console.log(req.body); 
}); 

これは常にundefinedを出力しますコンソールで

req.bodyまたはreqの一部に、コードの明示部分に送信しようとしている情報が含まれているように、これを変更するにはどうすればよいですか。

答えて

7

ボディパーサーを使用する必要があります。

var bodyParser = require('body-parser') 

app.use(bodyParser.json()); 

参照:

また、追加する必要があります:あなたの.ajax()オプションで

contentType: 'application/json', 

+0

あなたは文字通り、私に8時間かかった問題で私を助けました。ありがとうございました!!! – TwoShorts

0

、あなたがbodyParserミドルウェアを使用する必要がreq.body使用を使用して、このようにそれをインポートするには:

var app = express(); 
var bodyParser = require("body-parser"); 
app.use(bodyParser.json()); 

router.post('/gen', function(req, res) { 
    console.log(req.body); 
}); 
関連する問題