본문 바로가기
Node

[Node]기능을 모듈로 분리하기

by 신입같은 3년차 2017. 12. 13.

안녕하세요 ㅎㅎ 오늘은 모듈로 나눈후 불러와서 사용하는방법에 대해 알아보겠습니다.

 

모듈로 나누었을때의 효율성은 다들 아시겟지만 필요한 함수만 불러와서 사용한다면 다른곳에서도 재사용 할 수 있기 대문에 효율적인 관리가 가능하겠

 

죠?? 물론 코드의 관리도 훨씬 쉬워집니다.   

 

모든 기본코딩의 간단한 예제인 계산기를 사용해보겠습니다.

 

exports에 추가하는 방법과 ,   module.exports에 추가하는 방법이 있습니다.  오늘은 첫번재 방식으로 진행하겠습니다.

 

 

 

파일명 : calc.js 
/**
 * Created by yunjin on 2017-12-13.
 */

/* 더하기 */
exports.add = function(a,b){
    return a + b;
}

/* 빼기 */
exports.minus = function (a,b){
    return a - b;
}

/* 곱하기 */
exports.multi = function (a,b){
    return a * b;
}

/* 나누기 */
exports.div = function (a,b){
    return a / b;
}

 

 

exports라는 전역객체에 4개의 함수를 추가하였습니다.

 

추가를 하였으니 이제 직접적으로 사용해 봐야겠죠??

 

 

 

/**
 * Created by yunjin on 2017-12-13.
 */

파일명 : moduleTest.js

/** 파일의 경로와 파일의 이름  주의사항.  확장자명인 .js는 적지 않는다 */
var calc = require('./calc');

console.log(`calc.js 모듈로 부터 불러온 add() 호출 : ${calc.add(5,5)} `);

console.log(`calc.js 모듈로 부터 불러온 minus() 호출 : ${calc.minus(7,5)} `);

console.log(`calc.js 모듈로 부터 불러온 multi() 호출 : ${calc.multi(5,5)} `);

console.log(`calc.js 모듈로 부터 불러온 div() 호출 : ${calc.div(10,2)} `);

 

 위의 코드를 보면 아시겠지만 모듈을 불러올때는 require()메소드를 사용하며 require() 메소드의 파라미터로 파일명을 전달합니다.

 

require()메소드를 호출하면 모듈객체가 반환되는데 calc.js에서 exports에 설정한 메소드들을 이 require()를통해 반환된 객체로 접근할 수 있습니다.

 

실행 결과를 확인해보죠.

 

 

 

 

 

moduleTest.js를 실행했을때   add, minus , multi , div를 require()로 불러와 moduleTest.js에서 호출해서 사용하였고 다음과 같은 결과를 확인할 수 있습니다.

 

 

참고 - 모듈을 불렀지만 해당 js가 없다면 어떻게 될까요?? 정답은 파일이 없다면 이름이 calc인 폴더를 찾아 그안에 있는 index.js를 불러들인다고 나와있네요 ㅎㅎ

반응형

댓글