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%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 ...