본문 바로가기

Node.js

[Node.js] ➋ 모듈(module) 사용법 | m1, m2, m3

반응형

 

 

 

 m1.js

console.log('m1은 object를 exports하는 모듈');

module.exports = {
  name: 'm1',
  type: '객체'
};


객체를 exports하는 모듈이다.

module.exports를 사용하여 name과 type 속성을 가진 객체를 내보낸다.

 

 

 


m2.js

console.log('m2는 함수를 exports하는 모듈');
module.exports = function(){
  return 'm2의 함수 호출';
};

m2.js는 함수를 exports하는 모듈이다. 

module.exports를 통해 함수를 내보낸다.

 

 

 


m3.js

console.log('m3는 인자값을 가지는 함수를 exports');
module.exports = function(score){
  return {
    sum: function(){
      return score.kor + score.eng;
    },
    avg: function(){
      return this.sum() / 2;
    }
  };
};
반응형


m3.js는 인자값을 가지는 함수를 exports하는 모듈이다. 

여기서는 학생의 국어와 영어 점수를 인자로 받아 총점과 평균을 계산하는 객체를 반환하는 함수를 내보낸다.

 

 

 


m4.js

console.log('전형적인 코어 모듈의 exports 방식');
//... 생략 ...
module.exports = someObj;


m4.js에서는 전형적인 Node.js 코어 모듈의 exports 방식을 사용한다. 

someObj 객체는 createServer, readFile, join 같은 예제 기능을 제공한다.

 

 

 


main.js

const m1 = require('./m1');
console.log(typeof m1, m1.name, m1.type);

const m2 = require('./m2');
console.log(typeof m2, m2());
const m22 = require('./m2')();
console.log(m22);

const m3 = require('./m3');
const kim = m3({ kor: 100, eng: 90 });
const lee = m3({ kor: 56, eng: 87 });
console.log(kim.sum(), kim.avg());
console.log(lee.sum(), lee.avg());


main.js에서는 각 파일로부터 모듈을 가져온다. (require())


가져온 m1 모듈의 객체에서 name과 type 속성을 출력.


가져온 m2 모듈은 함수를 내보내므로, 함수를 실행하여 결과를 출력.

이때, m2를 호출하여 반환된 값을 m22 변수에 저장한 뒤 결과를 출력.


가져온 m3 모듈은 함수를 내보내며, 객체를 반환.

학생들의 국어와 영어 점수를 인자로 주어 'kim'과 'lee'라는 객체를 생성하고,

각 객체의 sum()와 avg() 함수를 호출하여 총 점수와 평균 점수를 출력.

 

 

 

 

 

 

반응형