Node - 노드의 모듈 시스템

GARY·2022년 5월 19일
0

범용 프로그래밍 언어가 되려면 모듈 기능이 필수적이다.
자바스크립트에서 CommonJS 모듈 시스템을 표준으로 사용하고 있다.
노드에서도 역시 다른 파일에 있는 함수나 변수를 가져와 쓸 수 있는 CommonJS 모듈 시스템을 구현하였다.

* 노드에서 CommonJS 모듈 시스템 사용법

  • CommonJS 모듈 시스템에서 하나의 파일은 하나의 모듈이 된다.

모듈 작성

  • module.exports 문법을 사용해 만들고 내보낼 수 있다.

** sum.js

module.exports = sum = (a, b) => {
	return a + b;
}

모듈 사용

  • require 함수를 사용하여 모듈을 불러올 수 있다.

** index.js

//파일 경로에 js 파일 확장자는 생략가능
const sum = require("./sum");

console.log(sum(1, 2));

* 다양한 모듈 예시

함수모듈

** calc.js

function calculate(a, b) {
  return a * b;
}
module.exports = calculate;

** app.js

const calc = require('./calc.js');
calc(2, 3);  // 6

객체 모듈

** calc.js

module.exports = {
  geometricSum(a, b, c) {
    return a * b * c;
  },
  arithmeticSum(n) {
    return n + 1;
  }
}

** app.js

const calc = require('./calc.js');
calc.geometricSum(1, 2, 3);

여러 함수를 exports

** module.js

var foo = function() {};
var bar = function() {};

exports.foo = foo;
exports.bar = bar;

** app.js

var myMod = require('./module');
myMod.foo();
myMod.bar();

* module.exports와 exports

  • module.exports === exports
    여러 개의 객체를 내보낼 경우 -> exports 변수의 속성으로 할당
    딱 하나의 객체를 내보낼 경우 -> module.exports 변수 자체에 할당
profile
개발하는 개린이 개리

0개의 댓글