더북(TheBook)

require 함수 안에 불러올 모듈의 경로를 적습니다. 위 예제에서는 같은 폴더 안에 파일을 만들었지만, 다른 폴더에 있는 파일도 모듈로 사용할 수 있습니다. require 함수의 인수로 제공하는 경로만 잘 지정하면 됩니다. 파일 경로에서 jsjson 같은 확장자는 생략할 수 있습니다. 예제에서도 ./var.js 대신 ./var만으로 모듈을 불러왔습니다. 또한, index.js도 생략할 수 있습니다. 예를 들어 ./routes/index.js를 불러오고 싶을 때 require('./routes')만 해도 됩니다.

예제 코드에서는 require 함수로 var.js에 있던 값들을 불러오고 있습니다. const { odd, even }2.1.5절에서 설명한 구조 분해 할당 문법입니다. var.jsmodule.exports에 담겨 있던 객체를 불러와 func.js에서 사용하는 모습입니다. 물론 const obj = require('./var');로 객체를 통째로 불러온 뒤 obj.odd, obj.even처럼 접근할 수도 있습니다.

var.js에서 변수를 불러온 뒤, 숫자의 홀짝을 판별하는 함수를 선언했습니다. 그리고 다시 module.exports에 함수를 대입했습니다. 이렇게 다른 모듈(var.js)을 사용하는 파일을 다시 모듈(func.js)로 만들 수 있습니다. 또한, module.exports에는 객체만 대입해야 하는 것은 아니며 함수나 변수를 대입해도 됩니다.

신간 소식 구독하기
뉴스레터에 가입하시고 이메일로 신간 소식을 받아 보세요.