Laden von remote-js-Datei mit benötigen mit node.js
Habe ich gearbeitet, auf einem online-sockel-server mit NodeJS und javascript, und ich habe die Schaffung von "Spielräumen" in meinem code verwenden benötigen:
new_game_obj = require('./forza4.js');
Nun.. das funktioniert finden, wenn ich mein test-code auf meiner lokalen Maschine, aber für den Produktions-server habe ich schon vor einem problem. Es scheint, dass für einige technische Grund, der Prozess läuft mein code ist auf einer anderen Maschine als der, den ich Zugriff habe (für den Datei-Upload und so), so dass ich gefragt wurde, von den Jungs, die auf der Serverfarm zu ändern mein code, so dass ich laden den code habe ich in "forza4.js" aus einer globalen position, und nicht lokal, wie ich es im moment tun.
Also änderte ich den code zu diesem:
new_game_obj = require('http://www.xxxxx.com/blabla/forza4.js');
(Natürlich habe ich getestet, um zu sehen, ob die Datei vorhanden ist, nur um sicher zu sein, es zeigt im browser, wenn ich auf die eigentliche Adresse)
Aber ich bekomme ein Fehler von meinem code (wieder an diesem Punkt, ich bin mit diesem lokal auf meinem Rechner), die sagt:
Exception: Error: Cannot find module 'http://www.xxxxx.com/blabla/forza4.js'
So, nur um auf der sicheren Seite, ich habe:
new_game_obj = require('http://92.xx.xx.xx/blabla/forza4.js');
Aber wieder der gleiche Fehler.
Sollte es ein problem beim laden eine "Erweiterung" zu meinem code von einem remote-server, oder bin ich einfach nur die Formatierung der "require" - Aufruf falsch?
Dank einem Haufen!
Yuval.
P. S.
Dies ist ein follow-up zu diesem thread:
Dies ist die ältere und behoben post
- nur zur Klarstellung, verwenden Sie requirejs.org?
- NÖ, ich bin mit Nodejs und in der code, den ich bin mit dem "require" - Aktion.
- Ok, Schreibe eine Antwort für Sie jetzt
Du musst angemeldet sein, um einen Kommentar abzugeben.
Werfen Sie einen Blick auf die node.js Module docs
Speziell, siehe der Algorithmus erfordern
Innerhalb node.js,
require
- Aufrufe sind synchron, so dass es nicht möglich ist, um Dateien zu laden, die nicht auf Ihrem Datei-system (dh, von einer externen url).Update
Könnte man holt sich den code über ein http-request - oder, noch besser, einen https-request und führen Sie es mit der eingebauten vm Modul - oder sogar mit
eval
ist, aber das scheint keine gute Idee - wie vorgeschlagen auf diese alte Frage.Etwas wie
Hinweis: ich habe nicht testen Sie diesen code
Sicher, es ist nicht die beste Lösung, aber eine Lösung.