我需要将一组 REST API 抽象为一个简单易用的 API。我计划创建一个简单的 nodejs/express API,异步进行各个标注,然后一次性返回所有结果。
JS场景变化很快,我看到的很多信息似乎都已经过时了。我希望有人能给我一些建议,并为我指出可能为此类场景设置的最佳实践或框架。
最佳答案
这听起来就像一个简单的 Express 应用程序 - 没什么复杂的。我将使用 request-promise 模块为您提供一个基于 Promise 的良好接口(interface),用于向其他主机发出请求,然后使用 Promise 将多个请求协调为一个响应。
除此之外,您还必须向我们展示您想要做什么的更多详细信息,以便我们提供更多具体信息。
如果您只想同时发出三个请求,然后合并结果,那么这里是一个粗略的示例:
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);
<小时/>
编辑 2020 年 1 月 - request() 模块处于维护模式
仅供引用,request
模块及其衍生产品,如 request-promise
现在处于维护模式,不会积极开发以添加新功能。更多推理可以阅读here 。 this table 中有一个替代方案列表对每一项进行一些讨论。我一直用got()
我自己,它从一开始就使用 Promise 构建,并且使用起来很简单。
关于javascript - 如何在 NodeJS/Express API 中进行多个异步调用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42933030/