使用以下代码,我在端口3000上创建了一个HTTP服务器并添加了一些get参数。我想用这个express.js服务器代码调用一个python脚本,这样当我点击localhost:3000 / key1 / abc / key2 / 234时,python脚本将被调用。我已经准备好了我的python脚本,它将输入参数作为sys.argv。请建议如何使用此代码调用python脚本,以便将value1和value2作为输入参数并返回json。
var express = require('express');
var app = express();
app.get('/key1/:value1/key2/:value2',function(req,res)
{
console.log(req.params);
var value1 = req.params.value1;
var value2 = req.params.value2;
res.send(req.params);
});
app.listen(3000,function()
{
console.log("Server listening on port 3000");
});
答案 0 :(得分:3)
要从Node.js运行Python脚本,需要生成一个新进程。 您可以使用child_process执行此操作。
您可以运行python
作为可执行文件,并将您的脚本名称作为第一个参数。
以下是基于上面链接的文档的示例:
const spawn = require('child_process').spawn;
const ls = spawn('python', ['script.py', 'arg1', 'arg2']);
ls.stdout.on('data', (data) => {
console.log(`stdout: ${data}`);
});
ls.stderr.on('data', (data) => {
console.log(`stderr: ${data}`);
});
ls.on('close', (code) => {
console.log(`child process exited with code ${code}`);
});
答案 1 :(得分:0)
如果你想用params执行它
node hello.js