2016-04-06 18 views
-2

node.js sunucusu içinde harici bir kaynaktan javascript kodu çalıştırmak ve sonuçları döndürmek istiyorum. html kodu içinde Sadece bu iç node.js bu senaryonun sonuç almak ve arayana geri koşmak nasılnode.js kodundan javascript kodu çağırılıyor

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

kullanırdınız?

Çalışmak istediğim komut dosyası hakkında önceden bilgim yok ve dış adreste bulunuyor.

+0

Olası kopyalar [node.js: Saf Javascript işlevlerini çağıran] (http://stackoverflow.com/questions/14454971/node-js-calling-pure-javascript-functions) – abc123

+0

abc123 @ : 'Need 'uzak dosyaları getirebilir mi? –

+0

@ abc123 evet, bu biraz farklı bir şey istiyor. Sanırım linkte, senaryonun aynı bağlamda olduğunu düşünürsün, bu yüzden Node'un durumunda normalde aynı fs anlamına gelir. –

cevap

1

Ben düğümü'nü yerli vm modülü bakarak öneririz. Yani Nazar adlı örnek üzerinde bina: Bu uzak adresin komut dosyası çeker ve senaryoyu çekerek kodu etkilemeden o ishal

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); 
    } 
}); 

. İşte VM dokümanlar şunlardır: https://nodejs.org/dist/latest-v4.x/docs/api/vm.html

ait
+0

Doğru cevap budur. – Dani

+0

@Dani teşekkürler! Bu durumda cevabı kabul etmek mi? –

+0

emin, hala bir sorunum var - b/c komut dosyalarının bir tarayıcı içinde çalışmasına ihtiyaç duyuyor (belge ect ... eksik) ama bu sorunun kapsamı dışında kalıyor ... – Dani

1

Buna ne dersiniz?

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

Saygılarımızla, Nazar Medeiros

+0

Bu kod bana senaryoyu getirsin ama çalıştırmazsın @Christian Grabowski geliştirmesi. – Dani