繁体   English   中英

用chai发送POST请求会发送一个空的正文吗?

[英]Sending a POST request with chai sends an empty body?

我现在有以下设置

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

我正在我的route / 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

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

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

app.use(require('body-parser').json());

(在声明路由器之前)

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM