【发布时间】:2022-01-23 04:09:04
【问题描述】:
我有一个网站将使用 EJS 模板来显示我的数据库中的数据。我不想为此创建第二个 API,而是想使用其他开发人员可以使用的预先存在的 API。有没有办法以最元的方式从我的 API 获取数据。
主应用路径
app.get("/facts/random", async (req, res) => {
/* Make request to /api/random here and get JSON data */
});
API 路由
app.get("/api/random/", async (req, res) => {
let results = await Fact.find();
const randomResult = Math.floor(Math.random() * results.length);
return res.json(results[randomResult]);
})
我想使用尽可能多的元方式从第一条路由向第二条路由发出请求。
【问题讨论】:
-
通常,您没有自己的 http 服务器向自己发出请求。通常,您只需将其他 API 正在使用的功能分解到导出的函数中,然后直接调用该函数。这样肯定更有效,因为真的没有理由将它打包成一个 http 请求,通过网络堆栈,在你的服务器中将它解析为一个 http 请求,处理它,创建一个 http 响应,然后通过网络发送回来堆栈,解析响应,然后在您可以通过调用函数来避免这 8 个步骤中的 6 个时对其进行处理。
-
如果您确实想发出自己的 http 请求,请获取像
got()或axios()这样的库,这样可以轻松完成。