使用节点js表示服务器

时间:2017-06-07 22:45:20

标签: python node.js http express server

使用以下代码,我在端口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");
});

2 个答案:

答案 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