될때까지

모듈 만들기 본문

학습/Node.js

모듈 만들기

랖니 2022. 8. 21. 15:36
728x90

노드는 자바스크립트 코드를 모듈로 만들 수 있다.

  • 모듈 : 특정한 기능을 하는 함수나 변수들의 집합을 말한다.
  • 모듈로 만들면 여러 프로그램에서 재사용이 가능하다.
// var.js

const odd = '홀수입니다.';
const even = '짝수입니다.';

module.exports = {
    odd,   // odd : odd => odd객체를 그냥 odd로 생략 가능
    even
};

다른 파일로 내보내기 위해서 module.exports를 사용하고 내보낼 아이들은 주로 객체로 생성해서 보내준다.

module.exports는 파일에서 1번만 사용 가능하다.

 

// func.js

const value = require("./var");     // ..은 부모폴더!   .은 현재 폴더!

console.log(value);   // { odd: '홀수입니다.', even: '짝수입니다.' }  객체가 찍힌다.

const odd = value.odd;
const even = value.even;

console.log(odd);   // 홀수입니다.
console.log(even);  // 짝수입니다.

require를 사용하여 건네진 아이들을 import할 수 있다. 이때 괄호안에는 경로를 적어줘야한다. 객체자체를 받아서 .을 사용해 원하는 값을변수에 저장할수도 있지만, 구조분해할당을 사용하면 아래처럼 간단하게 저장 가능하다.

const {odd, even} = require("./var");  

console.log(odd);   // 홀수입니다.
console.log(even);  // 짝수입니다.

다른 경로로 또 내보내보자.

// func.js

const {odd, even} = require("./var");  

function checkOddOrEven(number) {
    if (number % 2) {
        return odd;
    } else {
        return even;
    }
}

module.exports = checkOddOrEven;

index.js에서는 간편하게 require를 사용해서 코드의 중복은 줄이되 해당 코드들을 가져다 사용할 수 있다.

// index.js

const {odd, even} = require("./var");   // 구조분해할당은 속성명이랑 변수명이 같아야함
const checkNumber = require("./func");  // 변수는 변경가능함

function checkStringOddOrEven(str) {
    if (str.length % 2) {
        return odd;
    } else {
        return even;
    }
}

console.log(checkNumber(10));
console.log(checkStringOddOrEven('hello'));
728x90

'학습 > Node.js' 카테고리의 다른 글

process  (0) 2022.08.21
노드 내장 객체 알아보기(global, console, timer, __filename, __dirname, this, require)  (0) 2022.08.21
REPL 사용하기, JS파일 실행하기  (0) 2022.08.21
Promise, async/await  (0) 2022.08.21
클래스  (0) 2022.08.21