python - 如何从 node.js 调用外部脚本/程序

标签 python c++ node.js

我有一个 C++ 程序和一个 Python 脚本,我想将它们合并到我的 node.js Web 应用程序中。

我想用它们来解析上传到我网站的文件;处理可能需要几秒钟,所以我也会避免阻止该应用程序。

我怎样才能接受文件,然后在 node.js Controller 的子进程中运行 C++ 程序和脚本?

最佳答案

child_process .这是一个使用 spawn 的示例,它允许您在输出数据时写入 stdin 并从 stderr/stdout 读取。如果您不需要写入标准输入并且可以在进程完成时处理所有输出,则 child_process.exec 提供了更短的语法来执行命令。

// with express 3.x
var express = require('express'); 
var app = express();
app.use(express.logger('dev'));
app.use(express.bodyParser());
app.use(app.router);
app.post('/upload', function(req, res){
   if(req.files.myUpload){
     var python = require('child_process').spawn(
     'python',
     // second argument is array of parameters, e.g.:
     ["/home/me/pythonScript.py"
     , req.files.myUpload.path
     , req.files.myUpload.type]
     );
     var output = "";
     python.stdout.on('data', function(data){ output += data });
     python.on('close', function(code){ 
       if (code !== 0) {  
           return res.send(500, code); 
       }
       return res.send(200, output);
     });
   } else { res.send(500, 'No file found') }
});

require('http').createServer(app).listen(3000, function(){
  console.log('Listening on 3000');
});

关于python - 如何从 node.js 调用外部脚本/程序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20972788/

相关文章:

python - JSON 文件中的变音符号会导致 ANTLR4 创建的 Python 代码出现错误

python - 为什么在sklearn线性回归中intercept_是一个数组?

python - 如何将一系列数组转换为二维 numpy 数组

python - virtualenv 激活不起作用

c++ - 从递归堆栈帧返回时不保留值?

c++ - 如何添加到双向链表的第一个?

c++ - Qt 5.5 setDevice() 定义

node.js - 如何通过 MongoDB 中的键查询子文档的映射?

javascript - 使用来自异步 Javascript http 请求的数据? (AWS无服务器)

javascript - 回调 - 第二次回调后出现错误