• 카테고리

    질문 & 답변
  • 세부 분야

    풀스택

  • 해결 여부

    미해결

module 관련 질문입니다!

22.03.13 17:32 작성 조회수 104

0

제로초님의 var.js, func.js, index.js에서 func.js 파일에 console.log('func.js 파일') 한 줄을 추가했습니다.

// func.js
const { odd, even } = require('./var');
console.log('func.js 파일');

function checkOddOrEven(num) {
	if (num % 2) { // 홀수면(1 -> true)
		return odd;
	}
	return even;
}

module.exports = checkOddOrEven;

그리고 node index 를 실행해봤더니

index.js 파일에서 checkOddOrEven() 함수만 checkNumber에 할당되는 줄 알았는데 결과가 console.log('func.js 파일');도 같이 실행되네요...
func.js 파일에 있는 checkOddOrEven() 함수 밖에 있는 console.log('func.js 파일') 까지 실행되는 이유가 궁금합니다!

 

답변 1

답변을 작성해보세요.

1

원래 require하면 require한 해당 파일 전체가 실행됩니다. 해당 파일 전체가 실행되어야 export되는 부분이 무엇인지도 알 수 있으니까요.

module.exports나 require가 특수한 게 아닙니다. 똑같이 한줄한줄 실행해서 module.exports나 exports에 대입된 객체를 require로 가져오는 것입니다.

재원허님의 프로필

재원허

질문자

2022.03.13

답변 감사합니다! 그러면 require한 해당 파일 전체가 실행되고 func.js 파일에서 module.exports에 할당한 checkOddOrEven() 함수만 index.js에 checkNumber에 할당되다고 이해하면 되는 건가요?

네 맞습니다.

재원허님의 프로필

재원허

질문자

2022.03.13

알려주셔서 감사합니다!!ㅎㅎㅎ