异步调用Node.js中的API模式

Tra*_*Guy 8 asynchronous node.js express

构建我的第一个"严肃的"Node.js项目(使用Express).

我需要使用几个REST API调用,收集所有结果,按摩它们并将完整的JSON返回给客户端(HTML5 + AJAX).

  1. 调用API A.
  2. 调用API B.
  3. 再次调用API A(结果来自B)
  4. 将3个调用的处理结果转换为JSON
  5. response.send(结果)

我敢肯定/希望有一个简单的模式,解决方案或模块,我只是没有谷歌正确的:)我也会感谢有关在哪里进行此类操作的意见(在"路线"下?单独的文件?等等.)

谢谢你的时间!

qia*_*iao 8

异步模块适合这种工作.具体来说,您可以使用async.waterfall函数.

例:

async.waterfall([
    function(callback){
        callback(null, 'one', 'two');
    },
    function(arg1, arg2, callback){
        callback(null, 'three');
    },
    function(arg1, callback){
        // arg1 now equals 'three'
        callback(null, 'done');
    }
], function (err, result) {
   // result now equals 'done'    
});
Run Code Online (Sandbox Code Playgroud)

编辑,如果您在作业之间有一些非常重要的依赖关系,那么您可以使用async.auto.它将根据需求确定运行功能的最佳顺序.

  • @TravelingTechGuy然后你可以使用[async.auto](https://github.com/caolan/async#auto) (3认同)