2011-12-27 51 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