require()와 module.exports

이동환·2020년 9월 28일
2

TIL

목록 보기
35/74

자바스크립트 개발을 하다보면 require나 import 키워드를 통해 외부 라이브러리를 불러오는 코드를 자주 보게 된다. require는 NodeJS에서 사용되고 있는 CommonJS 키워드이고, import는 ES6(ES2015)에서 새롭게 도입된 키워드다.

require()

NodeJs에서 require() 메소드를 사용하여 외부의 js 파일을 가지고 와서 사용이 가능하다. 우리는 다른 js파일을 모듈이라고 부른다.
사용방법은 아래의 코드와 같다.

require(파일경로)

require를 배웠으니 실습을 해보면 좋다.
hi.js 와 world.js 파일을 같은 디렉토리에 생성한다.

//hi.js 파일
console.log('hi');
//world.js 파일
require("./hi");
console.log('world')

이렇게 파일들을 작성하고, 터미널에서
$ node world.js을 실행시켰을때, 결과는 이렇다.

예상한한 결과대로 hi.js 파일을 world.js에서 사용 가능했다.
그럼 조금 더 많은 실험을 해보자.

//hi.js 파일
let test1 = function () {
  console.log("oh ?");
};
console.log("hi");
module.exports = test1;
//world.js 파일
const hi = require("./hi");
hi();
console.log('world')

이 결과는 아래와 같다.

world.js파일에 hi()를 생략하면
hi 와 world만 출력이 된다.

이렇게 특정한것을 불러올땐, hi.js 파일에 module.exports을 사용하고, 불러올 변수를 지정해주면된다.
이렇게 module.exports = test1;

그리고 world.js에서는 hi에 require("./hi"); 을 담고,
바로 hi()를 실행 시켜주면 위의 그림과 같은 값을 가지게 된다.

CommonJS에 대해서 더 알아보기

profile
UX를 개선하는것을 즐기고 새로운것을 배우는것을 좋아하는 개발자입니다.

0개의 댓글