728x90
_filename, _dirname
node에서 브라우저와 다르게 컴퓨터에 접근할 수 있다(헤커가 심어놓은 js파일을 잘 못 실행할 경우, 해킹 위험이 있다)


- __filename: 현재 파일 경로
- __dirname: 현재 폴더(디렉터리) 경로
module, exports
module.exports 외에도 exports로 모듈을 만들 수 있음

const odd = '홀수입니다';
const even = '짝수입니다';
exports.odd = odd;
exports.even = even;
//module.exports === exports === {}//초기 빈 객체로 되어있다
- exports.객체명 = 객체명으로 값을 채운 뒤에 module.exports를 사용하게 된다면 참조값이 변경되기 때문에 선언했던 것이 무시된다.
- 한 가지만 만들고 싶을 때는 module.exports를 쓰자
- 모듈 예제의 var.js를 다음과 같이 바꾼 후 실행
- 동일하게 동작함
- 동일한 이유는 module.exports와 exports가 참조 관계이기 때문
- exports에 객체의 속성이 아닌 다른 값을 대입하면 참조 관계가 깨짐
this
노드에서 this를 사용할 때 주의점이 있음

- 최상위 스코프의 this는 module.exports를 가리킴
- 그 외에는 브라우저의 자바스크립트와 동일
- 함수 선언문 내부의 this는 global(전역) 객체를 가리킴
728x90
'Node > 노드 기능' 카테고리의 다른 글
| process (0) | 2022.07.23 |
|---|---|
| 모듈 심화, 순환 참조 (0) | 2022.07.23 |
| Global과 콘솔, 타이머 (0) | 2022.07.23 |
| 모듈로 만들기 (0) | 2022.07.23 |
| REPL와 js 파일 실행하기 (0) | 2022.07.23 |