2011-12-27 85 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 2011-12-27 23:41:17