无法访问中间件内的req.body

Jos*_*oss 3 rest node.js express

我实际上在带有Express的node.js中有一个非常小的应用程序,我无法访问req.body.

这是我的app.js代码:

var express = require('express'),
    middleware = require('./middleware'),
    mysql  = require('mysql'),
    app = express();

app.use(middleware.authenticate);
app.use(middleware.getScope);

app.listen(3000);
module.exports = app;
Run Code Online (Sandbox Code Playgroud)

以及带有中间件的文件:

var bcrypt = require('bcrypt'),
    mysql  = require('mysql');

function authenticate(req, res, next){
   console.log(req.body);
    next();
}

function getScope(req, res, next){
    console.log(req.body);
    next();
}

module.exports.authenticate = authenticate;
module.exports.getScope = getScope;
Run Code Online (Sandbox Code Playgroud)

在所有情况下,req.body都是undefined.

我发送带有x-www-form-urlencoded协议的Postman数据,在这种情况下是必须的.

在此输入图像描述

谢谢!!

mic*_*lem 5

你需要添加body-parser来表达:

var bodyParser = require('body-parser');
app.use(bodyParser.json()); // for parsing application/json
app.use(bodyParser.urlencoded({ extended: true })); // for parsing application/x-www-form-urlencoded
Run Code Online (Sandbox Code Playgroud)

点击此处查看请求http://expressjs.com/en/api.html

也许POST路线也可能有所帮助:

app.post('/', function (req, res, next) {
  console.log(req.body);
  res.json(req.body);
});
Run Code Online (Sandbox Code Playgroud)