用chai发送POST请求会发送一个空主体?

时间:2016-11-03 14:14:29

标签: javascript node.js chai knex.js

我现在有以下设置

test.js

     var user = {
        username: 'test_user',
        email: 'test@test.me',
        password: 'you shall not pass',
        address: 'No where street'
     };
     chai.request(app)
        .post('/api/v1/users')
        .send(user);

我正在处理我的routes / user.js

中的帖子请求
router.post('/', function(req, res, next) {
    console.log('body: ' + req.body);
    queries.insertUser(req.body)
        .then(function(id) {
            return queries.getSingleUser(id);
        })
        .then(function(user) {
            res.status(200).json(user);
        })
        .catch(function(err) {
            next(err);
        });
});

req.body最终未定义。关于可能出现什么问题的任何线索?

如果有人想看看,代码会在https://ide.c9.io/burtonium/node-from-scratch生效。

1 个答案:

答案 0 :(得分:1)

req.body未定义通常是由于未在Express中使用body-parser中间件或未正确声明(例如之后想要访问的路由{} {1}})。

假设Chai发送JSON,请将其添加到Express应用程序中:

req.body

(在声明路由器之前)