2017-09-19 3 views
0

socket.io 매개 변수로 모듈을 만들고 싶습니다. 따라서 모듈 클래스에 전역 적으로 설정된 변수가 있습니다.파라미터가있는 NodeJS 모듈

제 질문은 어떻게해야하나요? 여전히 해당 모델 클래스의 함수에 액세스 할 수 있습니까?

용어에

나는이 메인 응용 프로그램 클래스의 socket.io lib 디렉토리를 정의하는 방법이며, 당신이 server 매개 변수를 전달해야하는 것을 볼 수 있으며, 당신이 사용할 수 있습니다 당신은 socket.io LIB, 로 할 수있는 뭔가를 원하는 것 개체 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