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로 지정해야한다
반응형