Node/노드 기능

_filename, _dirname, exports와 this

webmaster 2022. 7. 23. 16:22
728x90

_filename, _dirname

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

filename.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