Freigabe von Variablen über Dateien in node.js ohne Verwendung globaler Variablen

8

Ich versuche, meinen socket.io-Code in eine separate Datei (socket.js) von meiner Hauptdatei (app.js) zu trennen. Allerdings muss ich mein io-Objekt in app.js definieren, das auch in meiner socket.js-Datei verwendet wird.

Zur Zeit setze ich io als globale Variable, so dass es von app.js zugänglich ist ( Globale Variable in app.js zugänglich in Routen? ), aber ich verstehe, dass dies eine schlechte Praxis ist. Gibt es einen besseren Weg, dies zu tun (kann die Injektion in diesem Fall funktionieren, da ich eine Variable aus der app.js nach socket.js exportieren muss und nicht umgekehrt)? Danke!

app.js

%Vor%

socket.js

%Vor%     
Dan Tang 01.04.2013, 02:16
quelle

2 Antworten

11

app.js

%Vor%

socket.js

%Vor%     
Thomas Blobaum 01.04.2013, 02:32
quelle
13

Eine Möglichkeit besteht darin, das Objekt als Argument zur Funktion zu übergeben (wie bereits in der Antwort von Thomas beschrieben).

Anderenfalls erstellen Sie eine neue Datei mit dem Namen 'global.js'. Fügen Sie nur diese Elemente in diese Datei ein, die global sein soll. z.B.

%Vor%

Nun, in Ihrer app.js,

%Vor%

Und in deiner socket.js:

%Vor%

Ich hoffe, es hilft ...

    
Shubhansh 01.04.2013 03:26
quelle

Tags und Links