2017-10-04 17 views
0

NodeJSとExpressでREST APIを構築しようとしています。私はoffersのルートを作成して、私はGETリクエストを送信しようとすると、私はここで何が不足していますNodeJS Express REST API取得要求が空のまま返る

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 
}); 
関連する問題