2017-09-19 1 views
0

Ich möchte ein Modul mit socket.io Parameter erstellen, so dass ich eine globale Variable in meiner Modulklasse haben würde.NodeJS-Modul mit Parametern

Meine Frage ist, wie würde man es tun und immer noch auf die Funktionen in dieser Modellklasse zugreifen?

in Begriff, den ich würde so etwas wollen, was Sie mit socket.io lib tun können, dies ist, wie Sie die socket.io lib in der Haupt App Klasse definieren und Sie können sehen, dass Sie einen server Parameter übergeben müssen und Sie können die Verwendung Objekte functions.

const io = require('socket.io')(server);

Auch dies ist das genaue Objekt, das ich zu meinem Modell übergeben will.

Antwort

0

Modell-Datei:

var storedObject 

module.exports = (myObject) => { 
    if(myObject){ 
     // set object only if provided 
     // this way you will be able to init once and use everywhere this model 
     storedObject = myObject 
    } 

    return { 
     getA: getA 
    } 
} 

function getA(){ 
    return storedObject.a 
} 

Anwendungsbeispiel:

var obj = {a: 1, b: 2} // can also be a socket.io or any other object 
var model= require('./model.js')(obj) // call with object only on initialization 
console.log(model.getA()) 
+0

Oh so fehlte mir 'return', wenn ich so etwas selbst zu tun versucht, vielen Dank! – MrSandman