我实际上在带有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;
带有中间件的文件:
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;
在所有情况下,req.body都是undefined
。
我发送带有x-www-form-urlencoded
协议的Postman数据,在这种情况下是必须的。
谢谢!
答案 0 :(得分: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
在此检查请求 http://expressjs.com/en/api.html
也许POST路线也有帮助:
app.post('/', function (req, res, next) {
console.log(req.body);
res.json(req.body);
});