2016-04-06 12 views
-2

Ich möchte einige Javascript-Code von externen Quelle innerhalb node.js Server ausführen und die Ergebnisse zurückgeben. innerhalb HTML-Code, würde ich nurAufruf von JavaScript-Code von node.js Code

<script>http:\\address.of.code.com\code.js</script>

wie führe ich diese in node.js die Ergebnisse dieses Skript erhalten und es an den Aufrufer zurückgeben?

Ich habe keine Vorkenntnisse des Skripts, das ich ausführen möchte, und es befindet sich in externer Adresse.

+0

Mögliche Duplikat von [Node.js: Aufruf von reinen Javascript-Funktionen] (http://stackoverflow.com/questions/14454971/node-js-calling-pure-javascript-functions) – abc123

+0

@ abc123 : Kann 'remote' entfernte Dateien abrufen? –

+0

@ abc123 Ja, das fragt etwas ein bisschen anders. Ich denke, in dem Link, den du gepostet hast, gibt es die Idee, dass das Skript im selben Kontext ist, also würde das im Fall von Node normalerweise dasselbe fs bedeuten. –

Antwort

1

ich vorschlagen, Blick auf Knoten nativen vm-Modul. So baut auf Nazar Vorbild:

var vm = require('vm'); 
var request = require('request'); 
request('http://address.of.code.com/code.js', function (error, response, body) { 
    if (!error && response.statusCode == 200) { 
      var script = vm.Script(body); 
      var ctxt = {}; 
      script.runInNewContext(ctxt); 
      console.log(ctxt); 
    } 
}); 

Das das Skript zieht aus es Remote-Adresse und führt es aus, ohne den Code zu beeinflussen das Skript ziehen. Hier sind vms Dokumente: https://nodejs.org/dist/latest-v4.x/docs/api/vm.html

+0

Dies ist die richtige Antwort. – Dani

+0

@Dani danke! Verstand, die Antwort in diesem Fall zu akzeptieren? –

+0

sicher, ich habe immer noch ein Problem - b/c die Skripte müssen in einem Browser scheinbar laufen (fehlende Dokument ect ...), aber es ist nicht in den Rahmen dieser Frage ... – Dani

1

Was ist damit?

var request = require('request'); 
    request('http:\\address.of.code.com\code.js', function (error, response, body) { 
     if (!error && response.statusCode == 200) { 
      console.log(body) 
     } 
    }) 

Mit freundlichen Grüßen, Nazar Medeiros

+0

Dieser Code bringt mir das Skript, aber es nicht ausführen Ich werde @Christian Grabowski Verbesserung versuchen. – Dani