javascript - 如何在节点服务器上发出同步 http 请求?
问题描述
我有一个带有多个 api 端点的节点 Web 服务器。其中一个端点需要向另一台服务器发出请求,以便组装自己的响应。我已经看到了一些不同的答案,其中包含指向允许纯同步 Web 请求的库的链接,但它们都与表示不要在生产中使用它们的警告相关联。
这是我的服务器请求处理程序的示例:
app.get('/my_api_endpoint', function (req, res) {
// Need to get data from other webservice using data
// from this request.
data = request_to_other_web_service(req.params.some_value);
res.status(200);
res.send("This is the " + data);
res.end();
});
是否有处理此类请求的标准模式?
解决方案
尝试同步调用 HTTP 请求时收到错误/警告的原因是,从一开始,node.js 就以回调和事件循环的核心理念构建。如果您尝试以同步方式编写异步代码......我可以为您指出异步/等待的方向。你能用吗npm install node-fetch
const fetch = require('node-fetch');
app.get('/my_api_endpoint', async function (req, res) {
// Need to get data from other webservice using data
// from this request.
data = await fetch("http://...");
res.status(200);
res.send("This is the " + data);
res.end();
});
推荐阅读
- javascript - 如何在 JavaScript 中显示编号从 1 到 40 的数组的 40 项?
- sql-server - 如何使 VB.NET 代码从 SQL Server 表中检索单行的速度与 VB6 一样快
- python - 使用 tensorflow 计算高斯的拉普拉斯算子
- c# - URL 重写选项:如何排除文件和目录?
- node.js - NodeJS 和 Express:Express 路由器没有调用正确的路由
- python - 从以队列为参数的线程开始进程
- docker - 更改 Visual Studio Code 远程容器中的默认源代码目录
- php - 对于价格低于一定金额的产品,在 Woocommerce 购物车中隐藏价格
- php - 如何手动安装 PHP 项目的依赖项?
- c++ - 标头或与标头关联的 .cpp 文件中的 C++ 链接错误