module, require()

oeng1211·2022년 5월 9일
0

22.05.09

module.exports 를 이용해 모듈화 가능
만들어진 모듈은 require를 통해 호출하여 사용 가능 (의존성 패키지, 모듈, json)

모듈 사용방법

npm 패키지
requir('패키지 이름') 으로 불러와 사용 가능, 패키지를 사용하려면 node_modules에 받아져 있어야함
직접 작성한 모듈
requir('모듈 파일 경로') 으로 불러와 사용 가능

cal.js

const add = (a,b) =>{
	return a+b
}
const mul = (a,b) =>{
	return a*b
}
module.exports.add = add;
module.exports.mul = mul;
// 위 두줄을 아래 처럼 변경 가능
module.exports = {
	add: add,
    mul: mul
}

app.js

const cal=require('./cal');

console.log(cal.add(5,3));
console.log(cal.add(5,3));

모듈은 require을 했을 때 한번만 호출하고 사라진다.
let number = 0 을 module.exports = number += 1; 했을 때
require를 10번 하면 1,2,3,..10 이 아니라 1,1,1,..1 으로 된다.
증감 연산자가 적용 되게 하려면 함수형태로 만들어야 한다.

정리
1. require 할 때 모듈 코드가 실행됨
2. node.js의 모듈은 첫 require 때 한번만 실행됨
3. 여러번 실행하기 위해선 함수 모듈로 작성 해야됨

func.js

let number = 0
module.exports = () => {
	return number += 1;
}

app.js

const func=require('./func');

for(let i = 0; i<10; i++){
	console.log(func());
}

간단하게 요약하자면 컴포넌트로 파일을 따로 만들고 require를 이용해 불러와 사용한다고 보면된다.
react의 import와 비슷함

ES Module

ES6에서 등장한 자바스크립트 공식 표준 모듈임
원래 자바스크립트는 모듈을 제공하지 않았다.
Node.js 에서 독자적인 방식을 통해 모듈을 지원하고 있었던것(commonjs)

commonjs 는 앞서 말한대로 module.exports 와 require로 모듈을 만들고 사용
ES 모듈은 export와 import로 모듈을 만들고 사용

0개의 댓글