-
[Node.js]모듈 사용하기 (exports, module.exports)공부 정리/Node.js 2019. 9. 16. 14:00
하나의 함수 안에 모든 기능을 넣어서 사용하는 것보다 기능별로 함수를 나누어서 필요할 때만 해당 함수를 가져다 사용하는 것이 다른 곳에서 재사용도 가능하고 코드를 따로 관리하기 때문에 프로그램 관리도 더욱 쉬워집니다.
그렇다면 노드에서는 어떤 식으로 이러한 과정을 처리하는지 알아봅시다.
먼저, 메인 페이지에서 다른 파일에 있는 함수를 끌어오기 위해서는
var 객체명 = require('파일명');
이러한 형태로 객체를 만들어 사용합니다. 그런데 이때 모듈을 끌어오기 위해서는 함수를 exports를 이용해서 선언해줘야 합니다.
이때 exports를 사용하는 방법은 2가지가 있습니다.
첫 번째는 exports를 이용하여 정의하는 방법입니다.
exports는 속성을 추가할 수 있어 여러 개의 변수나 함수를 각각의 속성으로 추가할 수 있습니다.
두 번째는 module.exports를 이용한 방법입니다.
module.exports에는 하나의 변수나 함수 또는 객체를 직접 할당합니다. 일반적으로는 객체를 그대로 할당하며, 이렇게 할당한 객체 안에 넣어 둔 변수나 함수를 메인 파일에서도 사용할 수 있습니다.
그렇다면 이제 직접 위에 사용된 예제들을 이용해 코드를 실행해 봅시다.
먼저 main.js입니다.
//main.js var calc = require('./module_calc'); console.log('exports를 사용한 더하기 결과 : %d', calc.add(10, 10)) var calc2 = require('./module_calc2'); console.log('module.exports를 이용한 더하기 결과 : %d', calc2.add(10,10))
calc와 calc2라는 객체에는 각각 exports를 사용한 모듈과 module.exports를 사용한 모듈에 대한 정보가 들어가 있습니다.
module_calc.js와 module_calc2.js는 각각 이렇게 생겼습니다.
//module.calc.js exports.add = function(first, second){ return first+second; } exports.minus = function(first, second){ return first - second; }
//module_calc2.js var calc = {}; calc.add = function(a, b){ return a+b; } calc.minus = function(a, b){ return a-b; } module.exports = calc; /* module.exports.add = function(a,b){ return a+b; } */
이제 main.js를 실행시켜 보겠습니다.
cmd에서 해당 파일이 있는 경로로 이동하신 후 [node 파일명]을 입력하시면 됩니다.
두 가지 방법 모두 정상적으로 실행이 되는 것을 확인할 수 있습니다.
잘못된 점, 오타 등등 댓글 주시면 수정하겠습니다.
저도 공부하면서 정리하는 거기 때문에 잘못된 점 혹은 제가 잘못 이해한 점이 있을 수 있습니다.