NodeJS模块带参数

时间:2017-09-19 16:54:24

标签: node.js

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

我的问题是如何做到这一点并仍然访问该模型类中的函数?

在术语中我会想要你可以用socket.io lib做什么, 这是你在主app类中定义socket.io lib的方法,你可以看到你需要传递一个server参数,你可以使用对象的功能。

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

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

1 个答案:

答案 0 :(得分: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())