如何从 node.js 中的 HTTP 请求获取同步结果

How to get a synchronuous result from an HTTP request in node.js

我正在编写一个节点模块作为 Python 模块的包装器(以使该模块可从 node.js 获得)。此模块可作为独立脚本或 HTTP 服务器使用。

从 script/server 获取数据时,我的函数需要 return 一个值,但不能 回调函数中的东西。至少我是这么理解的。
(一个可能的客户端是 gitbook-plugin,当遇到 "block" 它必须调用 plugin->my-client-module 并将其 return 值插入生成的 HTML文档。)

所以我看到了一些错误,因为我对 Node.js(来自 Python)太陌生了,或者我需要一种使 HTTP 请求同步的方法。

使用独立脚本,我可以使用 ChildProcess.spawnSync 轻松完成,但不能在 HTTP 请求中完成。

好吧,我知道人们总是建议在 Node 中异步执行操作,所以我也很乐意获得有关如何以这种方式实现我的目标的指示。如前所述,我希望我的模块的客户端向我传递一些数据,传递这些数据以调用脚本或在服务器上执行 POST 请求并将处理后的数据 return 发送给客户端。

您可以使用 web-workers 实现同步 HTTP 请求。
以下是有关此主题的更多信息:
https://developer.mozilla.org/zh-TW/docs/Web/API/XMLHttpRequest/Synchronous_and_Asynchronous_Requests#Example_Synchronous_HTTP_request_from_a_Worker


编辑:

您可以从 Node.Js 发出同步请求。以下模块应该有所帮助: https://www.npmjs.com/package/sync-request