Ich benutze NodeJS. Ist es möglich, eine JavaScript-Datei im Knoten zu verwenden, wie wir es in Browsern tun? Denn wenn ich die require() -Methode benutze, ruft sie eine Javascript-Datei auf, die keinen Zugriff auf die globalen Variablen in meiner server.js-Datei hat. Ich musste mein Modul laden und es zu einer Fortsetzung der Hauptdatei machen, da mein Modul von einigen globalen Variablen abhängt.NodeJs benötigen eine Datei
EDIT:
ich diese server.js Datei haben:
var Settings = require("settings.js");
var Clients = require("clients.js");
var removePack = [];
/**HERE RUNS MY WEBSOCKET SERVER**/
...
...
//When a new socket connects:
io.on("connection", function(socket){
var socket.id = Math.random();
var client = Clients.create(socket.id);
});
Hier meine clients.js Datei:
exports.create = function(){
self.team = Settings.generateRandomTeam(); /*The problem is here. I can´t access the Settings variable*/
self.maxSpeed = Settings.maxSpeed;
...
...
return self;
}
EDIT 2:
Wenn ich Einstellungen verwende = require ("settings.js") Ich erhalte den folgenden Fehler:
TypeError: Settings.generateRandomTeam() ist keine Funktion.
Meine settings.js Datei ist wie folgt:
Settings.generateRandomTeam = function(){
//Some code
}
module.exports = Settings;
Dank!
Sie tun einfach 'var foo = require ('foo.js');'. Stellen Sie sicher, dass Sie exportieren, auf was Sie zugreifen möchten – Li357
Stellen Sie sicher, dass Sie den richtigen Pfad verwenden! Wenn Sie Ihre Datei benötigen wie 'var foo = require ('foo.js');' - Dies versucht, ein globales Modul auf Ihrem Computer zu erfordern. Probieren Sie 'var foo = require ('./ foo.js');' – James111
Zunächst denken Sie in node.js niemals darüber nach, globale Variablen zu verwenden (99,9999% oder die Zeit, die sie nicht benötigt werden oder angemessen sind). Sie müssen lernen, wie Module in node.js funktionieren und wie Sie Daten zwischen Modulen teilen. Hinweis: die Verwendung von Globals ist NICHT der Weg Dinge in node.js zu tun. Sie können ein Push- oder Pull-Modell zum Teilen verwenden. Der einfachste Weg besteht darin, einen Modulkonstruktor aufzurufen und ihm die Daten zu übergeben, die Sie freigeben möchten. Dies bezeichne ich als "Push" -Modell, da Sie Daten an das andere Modul zum Teilen weitergeben. – jfriend00