gpt4 book ai didi

python - 使用下一个路由和 node.js 服务器从 React 调用 Python 脚本

转载 作者:行者123 更新时间:2023-12-03 12:14:50 28 4
gpt4 key购买 nike

我正在开发一个使用 react、next-routing 和基本 node.js 服务器的以太坊应用程序。我想在特定路线上运行一个 python 脚本,声明分析是特定的,以便执行一些预测。我希望每次访问 claimAnalysis 路由时都执行脚本。
服务器.js

const express = require("express")();
const next = require("next");

const app = next({
dev: process.env.NODE_ENV !== "production"
});

const routes = require("./routes");
const handler = routes.getRequestHandler(app);

app.prepare().then(() => {
const server = express.use(handler);

server.listen(3000, (err) => {
if(err) throw err;
console.log("Server ready on localhost:3000");
});
});
路由.js
const routes = require("next-routes")();

routes
.add("/insurance/new", "/insurance/new")
.add("/insurance/:address", "/insurance/show")
.add("/insurance/:address/claims", "/insurance/claims/index")
.add("/insurance/:address/claims/new", "/insurance/claims/new")
.add("/insurance/:address/claims/:id/claimAnalysis", "/insurance/claims/claimAnalysis");

module.exports = routes;
如果我可以从运行 python 脚本的 claimAnalysis.js 文件中调用函数,请指导我。

最佳答案

如果您使用的是 Node 10+,则可以使用 util.promisify执行返回 Promise<{ stdout, stderr }> 的 python 脚本目的。请参阅下面的示例:

const util = require('util');
const exec = util.promisify(require('child_process').exec);

// function to execute python script
async function executeScript(path) {
try {
const { stdout, stderr } = await exec(`python3 ${path}`);
console.log('stdout:', stdout);
console.log('stderr:', stderr);
} catch (e) {
console.error(e);
}
}
现在让我们在您的 route 使用该功能:
app.get('/insurance/claims/claimAnalysis', async function (req, res) {
await executeScript();
res.send('claimAnalysis request completed');
...

})


关于python - 使用下一个路由和 node.js 服务器从 React 调用 Python 脚本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/63190114/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com