javascript, jQuery & Node.js/Node.js

모듈, 모듈화하기, 노드 모듈 - 노드기능 02

yy_dd2 2022. 12. 9. 15:29
반응형

노드는 코드를 모듈로 만들 수 있다. (브라우저의 자바스크립트와 다른점)

모듈 : 특정한 기능을 하는 함수나 변수들의 집합

 

  모듈 필요한 기능만 재사용  
프로그램
모듈도입
js 프로그램A
js ↗️
↘️
 
js 프로그램B

그림처럼 안되지만... 

프로그램에서 모듈을 도입해서 js파일이 3개정도 있다고하면 그 모듈 js 파일로 프로그램 a에도쓰고 b 에도 쓰고 안쓸수도 있다..

재사용가능성이 높다는 이야기

 

var.js 와 func.js, index.js 같은 폴더에 생성

 

var.js

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

//  module.exports 안에 대입했고 이파일은 모듈로 기능이 가능해진다.
module.exports = {
    odd,
    even
};

/*
ES모듈로 변경하라고 자꾸뜸
export default {
    odd,
    even
};
*/

func.js

// var.js 를 참조하는 func.js 파일
const { odd, even } =   require('./var');
// ES 모듈로 변환이 자꾸 뜸 import { odd, even } from './var';

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

module.exports = checkOddOrEven;
// ES 모듈로 변환이 자꾸 뜸export default checkOddOrEven;

 

index.js

const { odd, even } =   require('./var');
const checkNumber  = require('./func');

function checkStringOddOrEven(str) {
    if(str.length % 2){ // 홀수라면
        return odd;
    }
    return even;
}

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

 

 

index는 var와 func 를 모두 참조한다

$ node node/module/index
짝수입니다
홀수입니다

 

 

 

ES2015버전으로 주석을 걸어놨는데

// var.js 를 참조하는 func.js 파일
import { odd, even } from './var';

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

export default checkOddOrEven;

ES2015 버전으로 사용이 가능하고 노드 9에서도 2015모듈로 사용이 가능하지만 파일의 확장자를 mjs로 지정해야한다

반응형