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

我有一个C++程序和一个Python脚本,我想将其纳入我的node.jsnetworking应用程序。

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

我怎么才能接受这个文件,然后在一个node.js控制器的subprocess中运行C++程序和脚本?

看到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, eg: ["/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'); });