본문 바로가기

Backend/NODE.JS

[NodeJS] Module System

반응형

각 모듈에서 모듈의 자유변수는 현재 모듈을 나타내는 객체에 대한 참조다.

모듈은 실제로 전역 모듈이 아니라 각 모듈에 로컬 모듈이다.(이것이 각 파일마다 모듈화가 될수 있는 이유이다.)

 

 

module 객체에 어떤 변수가 있는지 알아보자.

 

module.children

module.exports

module.filename

module.id

module.loaded

module.parent

module.paths

module.required

 

이 변수들이 현재 모듈(작성하고있는 file)을 나타내는 객체에 대한 참조를 가지고 있다. 

console.log(moduls) 를 해보면,

 

모듈객체가 가지고있는 정보가 현재 작성중인 file에 대한 내용임을 알 수 있다.

 

이중에서 주목해야할것은 exports property 이다.

 

초기값은 빈객체이다.

 

이 빈객체에 내가 export하고 싶은 값들(객체, 함수, 기본type)을 넣어주면된다.

test.js
콘솔에 찍어보았다.

이 exports 객체에 들어간 변수들이 다른 file혹은 module에서 사용이 가능하게 되는것이다.

 

다른 파일에서 test.js에서 exports된 변수들을 사용해보자.

 

 

app.js

exports된 변수를 사용하려면 require 매소드를 사용해야 한다.

require메소드에 모듈화된 파일의 경로를 인자로 전달해주면 된다.

 

모듈화가 주는 장점은 파일(모듈)간 변수가 겹치지 않는다는것,

또한 스코프 충돌이 일어날 일도 없다.

 

이는 같은 프로젝트에서 다수의 개발자가 협업을 할때 변수에대한 충돌걱정을 하지 않아도 되는것이다.

코드들을 모듈로 쪼개어서 관리가 가능하다는것은 곳 유지 보수에도 많은 장점이 있다고도 볼 수 있다.

반응형

'Backend > NODE.JS' 카테고리의 다른 글

[NodeJS] JWT  (0) 2020.03.29
[NodeJS] FILE SYSYEM  (0) 2020.01.26