2017-10-04 1 views
0

NodeJS 및 Express로 REST API를 빌드하려고합니다. 나는 offers에 대한 경로를 생성하고 내가 GET 요청을 보내려고 할 때 내가 여기서 뭘없는NodeJS Express REST API get 요청이 공백 반환

routes.js

router.get('', passport.authenticate('jwt', { session: true}), OfferController.getOffers); 

offerController.js

exports.getOffers = function(req, res) { 
    Offer.find({}, function(err, task) { 
     if (err){ 
     return res.send(err); 
     } 
     res.json(Offer); 
    }); 
    } 

200 상태 코드가 비어있는 응답을 얻을? Offer.find()의 결과는 작업 변수에

exports.getOffers = function(req, res) { 
    Offer.find({}, function(err, task) { 
     if (err){ 
     return res.send(err); 
     } 
     // Change this line from res.json(Offer) to: 
     res.json(task); 
    }); 
    } 

, 그건 당신이 클라이언트로 보낼 내용은 다음과 같습니다에 대해 어떻게

답변

1

.

+1

변경 한 사항을 설명해 주시겠습니까? 이유를 설명하면 옳은 대답이 훌륭한 대답으로 바뀝니다. –

+0

@SterlingArcher 맞아요, 제 대답을 설명해주었습니다 ;-) – Oscar

0

Offer은 몽구스 모델이므로 다시 보낼 수 없습니다. 비동기이기 때문에 반환 할 필요가 없습니다.

사용이 구조 :

exports.getOffers = function(req, res) { 
    Offer.find({}, function(error, result) { 
     var myRes = {}; 
     if(error){ 
      myRes.error = error; 
      myRes.error.message = "Error..." 
     }else{ 
      myRes.data = result; 
     } 
     res.send(myRes); 
    }); 
    } 
0

가 왜 Offer을 보내는?

Offer.find({})의 출력 즉 task을 전송해야합니다.

따라서 res.send(task)은 오류 조건 이후의 명령문이어야합니다. 그러면 다음과 같이 보일 수 있습니다.

exports.getOffers = function(req, res) { 
    Offer.find({}, function(err, task) { 
    if (err){ 
     return res.send(err); 
    } 

    res.json(task); //this 
}); 
관련 문제