Express继续获取request.body作为未定义的JSON对象

时间:2016-12-30 12:50:00

标签: javascript json node.js express

我正在制作一个如下所示的Ajax请求:

 $.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的任何部分包含我尝试发送到代码的快速部分的信息。

2 个答案:

答案 0 :(得分:7)

您需要使用身体解析器。

var bodyParser = require('body-parser')

app.use(bodyParser.json());

见:

您可能还需要添加:

contentType: 'application/json',

在您的.ajax()选项中。

答案 1 :(得分:0)

要使用req.body,您必须使用bodyParser中间件,请按以下方式导入:

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

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