2016-08-02 14 views
0

Ich muss Datei test.js ausführen, die an einem anderen Ort als die meine laufenden Anwendung ist. Zu tun, dass ich die Brache Code versucht habenWie führe ich die Datei an einem anderen Ort in Nodejs

var execFile = require("child_process").execFile; 
exports.sync = function(req, res) { 
    console.log("sync called"); 
    var child = execFile("C:/Users/rhush/Desktop/test", function(error, stdout, stderr) { 
     if (error) { 
      throw error; 
     } 
     console.log(stdout); 
     res.send({ status: stdout }); 
    }); 
}; 

und meine Testdatei ist hier:

function testing() { 
    console.log('sync job running'); 
} 
testing(); 

, aber ich habe den Fehler enter image description here

bitte korrigieren, wenn ich einen Fehler mache.

+0

Gegeben Sie ausführen 'test.js' sollte der Pfad' "C:/Users/rhush/Desktop/test "' '' 'C: /Users/rhush/Desktop/test.js" 'stattdessen? –

+0

Nein, das funktioniert auch nicht für mich .. – Rhushikesh

+0

Auch - Angabe des Dateinamens ist nicht genug. Es wird nichts tun, weil die Datei nicht ausführbar ist. Abhängig davon, wie diese Datei ausgeführt wird, wenn Sie beabsichtigen, es mit 'node' binär auszuführen, dann wäre es wie' node C:/Users/rhush/Desktop/test.js' –

Antwort

0

Um eine js-Datei ausführen execfile Sie Knoten Befehl mit dem Dateinamen übergeben müssen, verwenden diese:

var execFile = require("child_process").execFile; 
exports.sync = function(req, res) { 
    console.log("sync called"); 

    var child = execFile("node", ["C:/Users/rhush/Desktop/test.js"], function(error, stdout, stderr) { 
     if (error) { 
      throw error; 
     } 
     res.send({ status: stdout }); 
    }); 
}; 
+0

Ich glaube nicht, dass Sie verwenden würden Knoten zum Ausführen des Tests. Ich habe nur ein Beispiel zitiert. Leute tun es normalerweise in Mocha oder Jesmin –

+0

@SamuelToh Dies ist nur ein Beispiel für den execFile-Knoten child_process. Kein TDD-Code. –