siehe child_process. Hier ist ein Beispiel mit spawn
, mit dem Sie in stdin schreiben und von stderr/stdout lesen können, während Daten ausgegeben werden. Wenn Sie nicht in stdin schreiben müssen und nach Abschluss des Prozesses alle Ausgaben verarbeiten können, bietet child_process.exec
eine etwas kürzere Syntax zum Ausführen eines Befehls.
// 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');
});
Wird Ihr C++ - Programm von Python aus aufgerufen oder sind das zwei separate Aufrufe, die Sie ausführen werden? 1) Zu Python und 2) zu C++ App? Oder lädt Python-Code und rufen Sie Ihre C++ App auf? –
Knoten 'child_process' Zeug wird Prozesse async ausführen. Wenn Sie nur ein Programm von einem Knoten aus starten wollen, ist das der Fall. – Joe
@StevenLeggett Das Python-Skript und die C++ - App interagieren überhaupt nicht; Ich möchte sie beide getrennt nennen (sie müssen auch nicht in einer bestimmten Reihenfolge sein). – alh