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

我有一个C++程序和一个Python脚本,希望将其合并到我的node.jsWeb应用程序中。

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

我如何才能只接受文件,然后仅C++node.js控制器的子过程中运行程序和脚本?

回答:

参见child_process。这是一个使用的示例spawn,它允许您在输出数据时写入stdin并从stderr

/ stdout中读取。如果您不需要写stdin并且可以在过程完成时处理所有输出,请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');

});

以上是 如何从node.js调用外部脚本/程序 的全部内容, 来源链接: utcz.com/qa/412221.html

回到顶部