Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/node.js/42.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 使用express端点生成子进程_Python_Node.js_Express_Child Process - Fatal编程技术网

Python 使用express端点生成子进程

Python 使用express端点生成子进程,python,node.js,express,child-process,Python,Node.js,Express,Child Process,我正在尝试使用子进程在express服务器中运行python程序。如果该方法是普通的NodeJS,则该方法可以工作,但它不适用于我的API端点 var spawn = require('child_process').spawn, a = spawn('python', ['test.py']); router.get('/test', function(req, res, next) { a.stdout.on('data', function(data){ conso

我正在尝试使用子进程在express服务器中运行python程序。如果该方法是普通的NodeJS,则该方法可以工作,但它不适用于我的API端点

var spawn = require('child_process').spawn,
    a = spawn('python', ['test.py']);

router.get('/test',  function(req, res, next) {

a.stdout.on('data', function(data){

    console.log(data.toString());

  });

  a.stdin.write(JSON.stringify("Hello"));
  a.stdin.end();
});
python程序只是打印hello

这里的问题是什么,如何解决


谢谢大家!

在没有看到
test.py
源代码的情况下,我假设
test.py
在输出所有数据后退出。如果是这种情况,则需要将调用移动到路由处理程序中的
spawn()


如果经常调用此路由处理程序,您可能需要考虑使用某种队列/池来限制在任何给定时间生成的进程数量。如果没有它,您可能会耗尽系统资源。

如果看不到您的
test.py
源代码,我假设
test.py
在输出所有数据后退出。如果是这种情况,则需要将调用移动到路由处理程序中的
spawn()


如果经常调用此路由处理程序,您可能需要考虑使用某种队列/池来限制在任何给定时间生成的进程数量。如果不这样做,您可能会耗尽系统资源。

python文件在main中只有一行:
print(“Hello”)
“notworking”不会告诉我太多。有错误吗?发生了什么或没有发生什么?没有错误。浏览器一直在重新加载。。。。在我的节点控制台中,我没有得到任何代码(如500)。。。除此之外,什么都没有……您是否在路由处理程序中添加了
res.end()
或类似的内容?python文件在main中只有一行:
print(“Hello”)
“notworking”并不能告诉我太多。有错误吗?发生了什么或没有发生什么?没有错误。浏览器一直在重新加载。。。。在我的节点控制台中,我没有得到任何代码(如500)。。。除此之外,没有任何内容……您是否在路由处理程序中添加了
res.end()
或类似的内容?