2012-03-14 3 views
5

Express 용 환경을 Express 용 라우팅 모듈로 전달하려고합니다. Express가 개발 모드 또는 생산 모드에서 실행 중인지 여부를 알려드립니다. 이렇게하려면 app.settings.env를 어떻게 든 라우팅 모듈에 전달해야한다고 생각합니다.Express 경로 용 Node js 모듈에 값 전달

내 라우팅 모듈은 각 경로에 대한 기능을 내 보냅니다. 그래서 :

var web = require('./web')({'mode': app.settings.env}); 

을하지만 노드는 (객체가 함수가 아닙니다)를 입력 오류가 발생합니다 : 이전에 유래 포스트에 근거하여

app.get('/search', web.search); 

, 나는이 시도했다.

저는 Node와 Express를 처음 사용합니다. 표현 루트에 값을 전달할 수 있습니까? 그렇다면 어떻게해야합니까? 당신이 web.js 경우

답변

8

은 다음과 같습니다 : 다음

module.exports.search = function(req, res, next) { 
    // ... 
}; 

module.exports.somethingOther = function(req, res, next) { 
    // ... 
}; 

당신이 함수로 객체 (module.exports)를 사용하려고

var web = require('./web')({'mode': app.settings.env}); 

를 호출하여. 여기에 오류를 입력하십시오.

매개 변수를 전달하기 위해 module.exports를 함수로 변환해야합니다. 좋아요 :

module.exports = function (env) { 
    return { 
     // env available here 
     search: function(req, res, next) { 
      // ... 
     }, 

     somethingOther: function(req, res, next) { 
      // ... 
     }; 
    }; 
}; 
+0

감사합니다. 이 작동합니다. –

+0

이 솔루션으로 내 하루를 저장했습니다. –