如何在NodeJS / Express API中创建多个异步调用

时间:2017-03-21 16:31:32

标签: javascript node.js express asynchronous

我需要将一组REST API抽象为一个简单易用的API。我打算创建一个简单的nodejs / express API,它可以异步生成各个标注,然后一次返回所有结果。

JS场景变化很快,我见过的很多信息似乎已经过时了。我希望有人可以给我一些建议,并指出我可能会为这样的场景设置的最佳实践或框架。

2 个答案:

答案 0 :(得分:2)

这听起来像一个简单的Express应用程序 - 没什么复杂的。我使用request-promise模块为您提供了一个很好的基于承诺的界面,用于发出其他主机的请求,然后使用promises将多个请求协调为一个响应。

除此之外,您还必须向我们展示更多有关您为我们提供更多细节的确切内容的详细信息。

如果您只是想要同时发出三个请求然后合并结果,那么这是一个粗略的大纲示例:

const rp = require('request-promise');
const express = require('express');
const app = express();

app.get('/getAll', (req, res) => {
    // construct urls

    let p1 = rp(url1);
    let p2 = rp(url2);
    let p3 = rp(url3);
    Promise.all([p1, p2, p3]).then(results => {
        // construct full response from the results array
        req.send(fullResponse);
    }).catch(err => {
        res.status(500).send(err.message);
    });

});


app.listen(80);

答案 1 :(得分:1)

就我个人而言,我使用async for nodejs(Link Here),async.parallel方法接受一组ajax调用,每个调用都有自己的可选回调,以及所有的回调。完成。