2016-11-03 2 views
1

내가 다음 지금 설치chai에서 POST 요청을 보내면 빈 몸체가 전송됩니까?

test.js

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

내 경로에 게시 요청을 처리하고 있습니다 /의 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

req.body는 일반적으로 고속으로 body-parser 미들웨어를 사용하거나 잘못 선언하지 하나에 의해 발생되는 미정의 (예를 들어, req.body 액세스하려고 경로 후).

차이가 JSON을 보내는 가정, 특급 응용 프로그램이 추가 : 서버 오류에 보조 노트 차이 티의보고로

+0

(당신이 라우터를 선언하기 전에)

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

꽤 도움이되지 않는 것입니다. 그걸 바꾸는 어떤 방법이 있니? –

+0

@MathieuBertin 아이디어 없음, tbh, 'chai-http'를 사용하지 않음 :) – robertklep

+0

간단한 요청으로 json을 얻을 수 있었던 이유는 무엇입니까? 왜이 경우에 보디 파서가 필요한가요? –

관련 문제