2011-12-27 6 views
2

これは本当に簡単な質問かもしれませんが、これを行う最も受け入れられた方法は何か分かりません。Node.jsルーティングとAPI呼び出しを構造化する

私は、API呼び出しを行い、その結果を返すルートを持っています。問題は、ルートがAPIコールが終了するのを待つのではなく、ただちに応答を送信することです。

応答がコールバックで発生するように構造化する必要があるようですが、この場合のベストプラクティスが何であるか正確にはわかりません。

app.get('/', function(req, res){ 
    var info = timesheet.getData(); // This function makes API call and 
             // waits for response, then returns 
             // data in callback function 

    res.send(info);     // info is undefined since this fires 
             // before the API response is finished 

}); 

ありがとう、あなたたちは素晴らしいです。 ジョン

(質問へのよりまっすぐ進むように私のコードを編集した)

答えて

1

timesheet.getDataは、コールバックパラメータを受け付けていますか?私はそれが非同期的にデータを集めていると思います。それがない場合は[はい、ちょうどそうようにそこにあなたのres.sendを置く:

app.get('/', function(req, res) { 
    timesheet.getData(function(info) { 
     res.send(info); 
    } 
}); 

続いていない場合は、よく、私は知りません。この回答を削除します。

+0

私はすべてを書いたので、コールバックはありませんでしたが、コールバック関数についての読書をして、彼らが働くはずのやり方を理解した後に書きました。ありがとう! – John

関連する問題