2017-09-19 67 views
0

我想用socket.io参数创建一个模块,所以我的模块类中会有一个全局变量。带参数的NodeJS模块

我的问题是如何做到这一点,仍然可以访问该模型类中的功能?

在学期我想是这样,你可以用socket.io lib中, 做什么,这是你如何在主应用程序类定义socket.io lib和你可以看到,你需要传递一个server参数,你可以使用对象funnctions。

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

而且这是确切的对象我想传递给我的模型。

回答

0

型号文件:

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 
} 

用例:

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

哦,所以我错过了'return'当我试图做这样的事情我自己,非常感谢你! – MrSandman