2017-02-02 2 views
2

Ich möchte einige R-Skripts auf meinem Knotenserver ausführen. Ich benutze Kinderprozess und es scheint zu funktionieren. Meine Frage ist:Erstellen von Datei über R und Childprocess in falschem Verzeichnis

Wie kann ich beeinflussen, wo die Ergebnisdateien gespeichert sind? Im Moment, egal was ich mache, werden die Ergebnisse dort gespeichert, wo meine server.js ist.

Aber ich möchte selbst wählen, wo die Ergebnisse gespeichert werden. (In meinem Fall möchte ich, dass die Ergebnisse dort sind, wo das Skript ausgeführt wurde)

Wie kann ich das tun?

Hier `s mein Code:

Dies ist, was ich in meinem server.js verwenden:

app.post('/execScript', function (req, res) { 
    var childProcess = require('child_process'); 
    console.log("IM IN SERVER"); 
    childProcess.exec('Rscript ../app/test.R', function (err, stdout, stderr) { 
    if (err) { 
     console.error(err); 
     return; 
    } 
    }) 
}); 

dies ist der Ajax-Aufruf von meiner js-Datei:

$.ajax({ 
     type: 'POST', 
     data: {project: ""+currentProject+"", script: ""+script+""}, 
     url: url, 
     success: function (content, textStatus) {} 
    }); 

Ist gibt es sogar eine Möglichkeit zu entscheiden, wo die Ergebnisse gespeichert werden sollen?

Jede Hilfe wäre großartig!

Antwort

2

Sie können an options object to exec passieren die aktuelle Arbeitsverzeichnis angeben:

childProcess.exec('Rscript ../app/test.R', {cwd: '/your/path/'}, (err) => { 
    if (err) { 
     console.error(err); 
    } 
    }) 
+1

YOU.ARE.THE.BEST !!! Vielen Dank, arbeitete wie ein Charme :) – ViktorG

Verwandte Themen