exports와 this in Node.js

조 은길·2021년 3월 1일
1

Node.js & 몽고DB

목록 보기
8/10
post-thumbnail

전역 변수의 통일

일단 node.js에서의 전역 변수는 global이고, JS에서의 전역 변수는 window이다. 그런데, 좀 헷갈리지 않나?? 결국은 node.js도 JS를 가동시키는 시스템인데... 그래서 나온게 globalThis 이다!!

exports vs module.exports

일단 이 둘은 전부다 빈 객체이다.

그리고,

이 빈 객체 안에서 무언가를 할당 해주면, 이런 식으로 바뀌는 구조이다.

하지만, exports를 써주는 경우는 할당해줘야 되는 방법이 module.exports와 다르다.

line 4,5 와 line 7은 같은 의미이다.

하지만, 이 원칙이 함수 일때는 달라진다.

또한,

한 파일에 exports와 module.exports를 같이 써주면, 둘은 더이상 같지 않다. 그냥 맨 마지막 줄에 써준 것이 작동이 되는데... 절대 이렇게 하지 말자!!

사실, exports와 module.exports가 헷갈린다면, 그냥 module.exports만으로 사용해주는 게 제일 좋다. 그러나, 개발자들마다 모듈 넘겨주는 방식이 다를 수 있으니, 이런 게 있다는 것만 알아두자!!


Node.js 에서의 this


=> { } 빈 객체가 출력 된다.

무언가 생각하지 않는가?? module.exports와 exports도 빈 객체 였던 것같은데...

그렇다!! Node.js에서는 this === exports === module.exports 가 같다!!

ex)

즉, this를 exports 대신 사용할 수 있다.

하지만, 헷갈리니까 이렇게 쓰는 사람이 있다면, 이해할 수 있게 알아만 두고 내가 이렇게 쓰지는 말자!!

마지막으로, this가 함수 안에서 쓰이면, 더이상 exports와 같지 않다.
this === global 이 된다.

this === exports 는 거짓!!!!

this === global 은 참!!!!!

[ this가 왜 않좋은 문법인지 알겠다. 예외가 너무 많음... ]

여기까지 exports와 this in Node.js 끝!!!!!!


자료 출처 및 참고 자료들

이번 블로그는 코드스테이츠의 강의 내용과 ZeroCho 블로그의 일부를 바탕으로 작성했으며, 그 어떠한 상업적 용도도 없음을 밝힌다.

node.js 교과서 written by 조현영

https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Operators/this

https://www.youtube.com/watch?v=gUwbGs-bNRo&list=PLcqDmjxt30RuRk0gcFwT_s7nexAYRF2_I&index=19

profile
좋은 길로만 가는 "조은길"입니다😁

0개의 댓글