我可以从 Node 调用 WSGI 应用程序吗?
Can I call a WSGI application from Node?
我 运行 一个 Python Flask 服务器,它有一些注册路由(见下面的例子)。一种路由将 HTTP 请求重定向到 WSGI 应用程序。对于我的项目,我切换到 NodeJS 服务器并重新创建了路由,因为 Python 由于它的 GIL 太慢了。
我也正在将 WSGI 路由转换为 NodeJS,但发现对它的支持不多。
WSGI 协议描述了一些环境变量,例如 wsgi.url_scheme
,但是在 Google 上,我找不到任何关于它的 NodeJS (TS) 示例或参考。
wsgi.url_scheme filetype:py 5000 次点击
wsgi.url_scheme filetype:ts 0 次点击
wsgi.url_scheme filetype:js 0 次点击
Node/TS
app.get("/wsgi", async function (req, res) {
var env = createWsgiEnvironmentFrom(req); <--- what I would need
var p = child_process.spawn('wsgi-test.exe', ["foo"],
{
stdio: [process.stdin, process.stdout, process.stderr],
env: {...env }
});
}
);
Python:
@app.route('/wsgi', methods=['POST', 'GET'])
def wsgi(path):
env = request.environ # already WSGI compatible
p = subprocess.Popen(args=["wsgi-test.exe", "foo"],
env=env,
...)
这是有原因的吗?我假设 Node 在扩展传入连接方面更好,所以我很惊讶我看到如此 little/no 示例与 Node
结合
非常感谢任何帮助!
原因很简单,因为WSGI
is a simple calling convention for web servers to forward requests to web applications or frameworks written in the Python programming language.
曾经说过,您似乎只需要按照 WSGI doc 中所述,使用标准和 WSGI 环境变量填充 Object
。除了 wsgi.input 和 wsgi.errors (我不知道 Python 如何将流传入一个环境变量,我不知道 类文件对象 是什么)应该很容易。如果您发现某些环境变量有问题,请随时再次询问。
希望对您有所帮助。
我 运行 一个 Python Flask 服务器,它有一些注册路由(见下面的例子)。一种路由将 HTTP 请求重定向到 WSGI 应用程序。对于我的项目,我切换到 NodeJS 服务器并重新创建了路由,因为 Python 由于它的 GIL 太慢了。
我也正在将 WSGI 路由转换为 NodeJS,但发现对它的支持不多。
WSGI 协议描述了一些环境变量,例如 wsgi.url_scheme
,但是在 Google 上,我找不到任何关于它的 NodeJS (TS) 示例或参考。
wsgi.url_scheme filetype:py 5000 次点击
wsgi.url_scheme filetype:ts 0 次点击
wsgi.url_scheme filetype:js 0 次点击
Node/TS
app.get("/wsgi", async function (req, res) {
var env = createWsgiEnvironmentFrom(req); <--- what I would need
var p = child_process.spawn('wsgi-test.exe', ["foo"],
{
stdio: [process.stdin, process.stdout, process.stderr],
env: {...env }
});
}
);
Python:
@app.route('/wsgi', methods=['POST', 'GET'])
def wsgi(path):
env = request.environ # already WSGI compatible
p = subprocess.Popen(args=["wsgi-test.exe", "foo"],
env=env,
...)
这是有原因的吗?我假设 Node 在扩展传入连接方面更好,所以我很惊讶我看到如此 little/no 示例与 Node
结合非常感谢任何帮助!
原因很简单,因为WSGI
is a simple calling convention for web servers to forward requests to web applications or frameworks written in the Python programming language.
曾经说过,您似乎只需要按照 WSGI doc 中所述,使用标准和 WSGI 环境变量填充 Object
。除了 wsgi.input 和 wsgi.errors (我不知道 Python 如何将流传入一个环境变量,我不知道 类文件对象 是什么)应该很容易。如果您发现某些环境变量有问题,请随时再次询问。
希望对您有所帮助。