我的方法是用Python编写一个Flask
服务器并将请求转发给它。
Demo.py
from flask import Flask
app= Flask(__name__)
@app.route("/")
def index():
return "Hello World"
if __name__ == '__main__':
app.run(debug=True)
另外,我还尝试直接调用python
脚本,然后从stdout
收集结果。
Trial.js
const express = require('express')
const app = express()
app.get('/', (req, res) => {
const { spawn } = require('child_process');
const pyProg = spawn('python', ['C:/Users/Selectigence/PycharmProjects/jobapplicationbot/Sample3.py']);
pyProg.stdout.on('data', function(data) {
console.log(data.toString());
res.write(data);
res.end('end');
});
})
app.listen(4000, () => console.log('Application listening on port 4000!'))
1条答案
按热度按时间htrmnn0y1#
我最近遇到了类似的问题,我运行的是Node JS服务器,但是客户端请求必须用Python处理,所以我选择了一个架构,它是这样的:
为了实现这个体系结构,我必须回答以下问题:
1.如何实现 * 后台服务 *。
1.如何使 * 后台服务 * 与 *Web进程 * 通信。
我使用celery来实现我的 * 后台服务 *。
tasks.py
我的 *Web进程 * 定义如下:
app.js
现在我需要在这两个进程之间建立一个通信通道,我使用redis作为消息代理。
在命令行中,我运行:
现在,每当我通过浏览器向服务器发送GET请求时,服务器会将请求中的参数转发给Python服务,该服务处理参数,并将结果返回给服务器,服务器最后用返回给浏览器的响应来完成请求。