2017-06-16 5 views
1

このコードはSails.jsアプリケーションで実行していますが、結果は空のJSONです。私は範囲と文脈についていくつかのページを読んできましたが、私が悪いことをしっかりとつかむことができませんでした。Node.js/Sails.jsアプリケーションのスコープおよび/またはコンテキスト

var evoluciones 
    HC.find({ id: req.param('id') }).then(records => { 
     evoluciones = records;    
    }) 
    return res.json(evoluciones) 

ありがとうございます。

+0

を試すことができます... 'evoluciones'は、あなたがリストされたコード全体の範囲です。クエリは結果を返していない可能性があります。 – Kryten

+0

'return res.json(evoluciones)'を 'then()'の中に入れると、データが返されます。 –

+0

* Facepalm *私がコメントしたときに私が約束に気付かなかったとは信じられません。問題は、データベースクエリが**非同期**であることです - 'HC.find()'によって返される約束は、データを返すまで解決しません。あなたのコメントはこれを行う正しい方法です... 'then'ブロックの中で' res.json() 'を呼び出してください。 – Kryten

答えて

0

@mechuda、あなたは問題がスコープではありません。この

HC.find({ id: req.param('id') }) 
    .then(evoluciones=> { 
     // to do something 
     return [evoluciones] ; 
    }) 
    .spread((evoluciones) => { 
      return res.json(evoluciones) 
    }) 
    .fail(error => { 
      sails.log.error(error); 
      return res.negotiate(error); 
    }); 
関連する問題