'node.js path 관리기법'에 해당되는 글 1건

모듈 path 관리 기법.

https://gist.github.com/branneman/8048520

http://dogfeet.github.io/articles/2012/nodejs-modules.html

참고..


수많은 기법중 재미있는 모듈을 발견해서 이 방법으로 쓰기로 결정했다.


requirefrom 이라는 모듈이다. 


사용방법은 다음과 같다.


Simple usage anywhere in your node app:

requirefrom moudle을 호출하고..

    var lib = require('requirefrom')('lib');
    var myModule = lib('myModule');

For more complex usage, let's assume this example directory structure:

node_modules/
lib/
  components/
    framework/
      veiws/
        login.js
        signup.js
      models/
        user/
          index.js
  utlity/
    normalize/
      user.js
package.json

Any file in this project could then include these files with the following code:

node.js 프로젝트 내의 어떤파일도 아래 파일을 통해 require 할 수 있다.

이 rquirefrom이라는 모듈은 server.js(app.js)에서 선언한 뒤 글로벌하게 쓰이는 모듈이 아니다.

아래와 같이 따로 js 파일을 생성한뒤 이를 다시 require 시키는 것으로 보인다.

var
    requireFrom = require('requirefrom')
  , views = requireFrom('lib/components/framework/views/')
  , models = requireFrom('lib/components/framework/models/')
  , utility = requireFrom('lib/utility/')
 
  , loginForm = views('login.js')
  , signupForm = views('signup.js')
 
  , userModel = models('user')
 
  , normalizeUser = utility('normalize/user.js')



2015.02.13 수정 


위 방법은 해당파일에서만 적용되고 global 하게 적용이 안된다.

따라서 app.js server.js 에 다음과 같이 global function을 적용하여 쓰는것이 좋겠다.


global.controllers = function(name) {

    return require(__dirname + '/controllers/' + name);

}

global.models = function(name) {

    return require(__dirname + '/models/' + name);

}

global.config = function(name) {

    return require(__dirname + '/config/' + name);

}


이렇게 global function을 적용하고 나면 global 하게 다른파일에서도 사용가능하다.

또한, 이렇게 하면 require(....)이라고 명시하게 되던 모듈설정을 controllers(....), models(....), config(....)로 나타나게 되어 

positive effect of knowing characteristic of module 을 지닌다. 


블로그 이미지

종환 Revolutionist-JongHwan

github.com/alciakng 항상 겸손하자.

댓글을 달아 주세요