导出函数中Node.js中响应主体的未定义值。

时间:2014-05-07 05:05:14

标签: javascript json node.js

我有一个通过

路径访问的控制器
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的特定功能?

2 个答案:

答案 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);