TIL. 49 module.exports

조윤식·2022년 9월 5일
0

모듈(module)이란?

node.js에서 모듈이란 다양한 기능들이 코드화되어 모여 있는 하나의 파일을 의미한다.

서비스가 대형화될수록 관련 기능을 하나의 파일로 모으고 모듈화시키는 것이 중요해진다.

여러 가지 기능을 하나의 파일에 전부 구현하다보면 유지보수 및 버그 수정이 어려워지기 때문에 시간이 지날수록 감당하기 힘든 문제가 발생하기 때문이다.

이런 모듈들이 모이고 모여서 프로그램을 이루기 때문에 내가 코딩하고 있는 소스로 외부 모듈의 기능을 불러와서 사용하는 일이 중요하며 가장 기초가 되는 것이다.

node.js에서는 다른 모듈을 사용할 때는 require, 모듈을 해당 스코프 밖으로 보낼 때에는 module.exports를 사용하는 CommonJS 방식을 사용하고 있다.

기본 문법

기본 문법은 module.exports 에 모듈화하고 싶은 변수명이나 함수명 또는 객체를 입력해주면 된다.

//기본 문법
//뒤에 객체가 올 수도 있고, 변수명이나 함수명이 올 수도 있다.
module.exports =

1. 2개 이상의 함수를 export 하는 방법

module.exports 뒤에 객체를 생성하고 모듈화하고 싶은 함수명을 입력해준다.

//여러 개의 함수를 exports하는 방법
function edit () {}
function write () {}

//함수명과 외부로 exports하려는 이름이 같다면, 아래와 같이 함수명만 써도 된다.
module.exports = {
edit,
write
}

//이렇게 입력해도 문제가 없다
module.exports = {
edit : edit
write : write
}

2. 단일 함수 or 단일 클래스를 export 하는 방법

module.exports 뒤에 바로 함수명이나 클래스명을 입력해준다

function edit () {}
function write () {}
module.exports = edit

function edit () {}
function write () {}
class update {
}
//단일 클래스를 export 할 때도 뒤에 클래스명을 입력하면 된다.
module.exports = update

3. 환경설정에 필요한 값을 모아서 export하는 방법

프로그램에서 필요로 하는 각종 설정값들을 한 군데 모아서 모듈화해두면 편하고 관리하기 쉽다.

//환경설정에 필요한 갑을 한군데 모아서 외부로 export하면 관리하기 편하다
module.exports = {
id : '',
token : '',
fn : () => {
console.log('this is a function');
}
}

module.exports가 아니라 exports 도 사용할 수 있다. export를 사용할 때는 property 형식으로 사용하므로, 아래의 예제처럼 template.foo.a 라고 입력하면 값을 얻을 수 있다.

test.js

var template = {
a: 'a',
b: 'b'
}
exports.foo = template;
//또는
exports.foo = { a: 'a', b: 'b' }

var template = require('test.js');
console.log(template.foo.a);//a가 출력된다.

profile
Slow and steady wins the race

0개의 댓글