我有一个通过
路径访问的控制器router.post('/human',human.create);
human通过其控制器文件导入,该文件包含以下内容:
var config = require(__dirname + '/../config/config'),
logger = require(__dirname + '/../lib/logger'),
util = require(__dirname + '/../helpers/util');
exports.create = function(request, response, next){
response.send({
id: "human_103tsG2eZvKYlo2CW5yEDyUe",
firstName: "Patricia",
middleName: null,
lastName: "Cesar",
sex: "Female",
birthdate: null
});
};
在这个创建功能中,我可以做到
console.log(request);
终端中会出现一个巨大的JSON对象,包括我需要的属性:body。
然而,当我这样做时,console.log(request.body)
,它未定义。
我是否遗漏了需要编码的Node或Express的特定功能?
答案 0 :(得分:1)
我猜您使用的是快速4.x,它解耦了许多中间件包,正如@shredmill所说,你应该使用
bodyParser = require ('body-parser')
...
app.use(bodyParser.json()); //i found this works for me comparing to use bodyParser()
答案 1 :(得分:0)
req.body
不会自动为您预先解析。您应该明确使用connect.json()
中间件:
var connect = require('connect');
router.post('/human', connect.json(), human.create);