Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/asp.net-core/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Express 4,主体解析器和路由器_Express_Router - Fatal编程技术网

Express 4,主体解析器和路由器

Express 4,主体解析器和路由器,express,router,Express,Router,我使用带有主体解析器的Express4,这样我就可以解析随每个请求发送的不同JSON有效负载。我试图用我的不同路由器分离关注点,但在express 4中使用了新的route对象。然而,post中的req.body对象仍然解析为nothing,即使我正在发送application/json负载。 下面是一段代码,展示了我试图实现的目标 //Setup var compression = require('compression'); //gzip var express = r

我使用带有主体解析器的Express4,这样我就可以解析随每个请求发送的不同JSON有效负载。我试图用我的不同路由器分离关注点,但在express 4中使用了新的route对象。然而,post中的req.body对象仍然解析为nothing,即使我正在发送application/json负载。 下面是一段代码,展示了我试图实现的目标

//Setup
var compression    = require('compression'); //gzip
var express        = require('express');
var app            = express();
var bodyParser     = require('body-parser');
app.use(compression());

// configure app to use bodyParser()
// this will let us get response data from a POST
var json_body_parser = bodyParser.json();
var urlencoded_body_parser = bodyParser.urlencoded({ extended: true });
app.use(json_body_parser);
app.use(urlencoded_body_parser);

var port = process.env.PORT || 8081;

var router = express.Router();
router.use(function(req, res, next) {
    // log each request to the console
    console.log(req.method, req.url);
    next();
});

router.route('/test')
    .get(function(req, res) { //Get All
        //do some stuff get stuff
    })
    .post(function(req, res) { //Create
        console.log(JSON.stringify(req.body)); //Empty ???
        res.json({ "message": "yeah!" });
        //Do some post stuff
    });

app.use('/api', router);

app.listen(port);

console.log('Magic happens on port ' + port);
使用邮递员的示例帖子

POST /api/test HTTP/1.1
Host: localhost:8081
Accept: application/json
Cache-Control: no-cache

{ "data":"4edd40c86762e0fb12000013" }

如何在POST请求中获取请求正文?

这是POST请求的内容类型存在问题。它应该设置为Content-Type-application/json。我确认这是原因。

这是post请求中的内容类型问题。它应该设置为Content-Type-application/json。我确认这就是原因。

我忘了在post请求中添加内容类型。这不是代码的问题,我忘了在post请求中添加内容类型。这不是代码的问题