Javascript

CommonJS 모듈 내보내기/불러오기

yangjoy 2021. 10. 11. 11:18

CommonJS


많은 프로젝트에서 ES6 모듈 시스템을 더 널리 사용하고 있는 추세이다.

하지만 import 키워드를 사용할 수 없는 상황(babel과 같은 ES6 코드 변환 도구를 사용할 수 없을 때)에서는

require 키워드를 사용해야하기 때문에 사용 방법을 알고 있으면 좋다.

 

require - 불러오기 

const moment = require("moment");

CommonJS에서는 다른 파일의 코드를 불러올 때 require 키워드를 사용하여

다른 변수를 할당하듯이 모듈을 불러온다.

 

exports/module.exports - 내보내기

CommonJS 방식으로 모듈을 내보낼 때는 특정 변수나 그 변수의 속성으로 내보낼 객체를 세팅해줘야 한다.

특히 exports와 module.exports 변수를 상황에 맞게 잘 사용해야 한다.

 

여러 개의 객체를 내보낼 경우, exports 변수 속성으로 할당.

딱 하나의 객체를 내보낼 경우, module.exports 변수 자체에 할당.

 

복수 객체 내보내기/불러오기


아래는 미국과 캐나다 달러를 상호 변환해주는 js 예제 코드이다.

 

내보내기

3개의 함수 중 2개의 함수만 다른 파일에서 접근할 수 있도록 내보내기를 했다.

 

currency-function.js

const exchangeRate = 0.91;

function roundTwoDecimals(amount){
	return Math.round(amount * 100) / 100;
}

const canadianToUs = function(canadian){
	return roundTwoDecimals(canadian * exchangeRate);
};

function usToCanadian(us){
	return roundTwoDecimals(us / exchangeRate);
}

exports.canadianToUs = canadianToUs;
exports.usToCanadian = usToCanadian;

 

불러오기

 

text-currency-function.js

const currency = require("./currency-functions");

console.log("50 Canadian dollars equals this amount of US dollars:");
console.log(currency.canadianToUs(50));

console.log("30 Canadian dollars equals this amount of Canadian dollars:");
console.log(currency.usToCanadian(30));

 

currency-function.js에 있는 변수들을 exports해서

text-currency-function.js 파일에 require 키워드를 통해 불러와 사용할 수 있다.

 

 

단일 객체 내보내기


내보내기

두 개 함수를 객체로 묶어서 내보내기.

내보낼 객체를 module.exports 변수에 할당해주면 된다.

 

currency-function.js

const exchangeRate = 0.91;

function roundTwoDecimals(amount){
	return Math.round(amount * 100) / 100;
}

const obj = {};
obj.canadiansToUs = function(canadian){
	return roundTwoDecimals(canadian * exchangeRate);
};
obj.usToCanadian = function(us){
	return roundTwoDecimals(us/exchangeRate);
}
module.exports = obj;

 

불러내기

 

text-currency-function.js

const currency = require("./currency-object");

console.log("50 Canadian dollars equals this amount of US dollars:");
console.log(currency.canadianToUs(50));

console.log("30 Canadian dollars equals this amount of Canadian dollars:");
console.log(currency.usToCanadian(30));

 

 

 

 

참고 감사합니다!

 

자바스크립트 CommonJS 모듈 내보내기/불러오기 (require)

Engineering Blog by Dale Seo

www.daleseo.com