티스토리 뷰
1) REPL
Read, Evaluate, Print, Loop
2) CommonJS 모듈 시스템
* 모듈 만들기
- 노드는 JS 코드를 모듈로 만들 수 있다.
- 모듈: 특정한 기능을 하는 함수나 변수들의 집합으로 여러 프로그램에서 재사용 가능
- 파일 끝에 module.exports로 모듈로 만들 값 지정
- 다른 파일에서 require(file path)로 그 모듈의 내용을 가져온다.
3) exports
//var.js
const odd = '홀수';
const even = '짝수';
//모듈 선언
module.exports = {
odd,
even
}
//func.js
const { odd, even } = require('./var'); //구조 분해 할당과 모듈 내용 호출
4) this
* this
- 노드에서 this를 사용할 때 주의점
- 최상위 스코프 this는 module.export를 가리킴
- 함수 선언문 내부의 this는 전역 객체를 가리킴
console.log(this); //{}
console.log(this === module.exports); //true
console.log(this === exports); //true
function whatIsThis() {
console.log('function', this === exports, this === global);
}
whatIsThis(); //function false true
5) require
* require의 특성
- require.main은 노드 실행 시 첫 모듈을 가리킨다.
- require.cache에 한 번 require 한 모듈에 대한 캐싱 정보가 들어있음.
6) 순환 참조
* 순환 참조 주의
- 모듈 A가 B를 require하고, B가 다시 A를 require 하는 경우: 무한 반복을 막기 위해 순환 참조 대상이 빈 객체가 된다.
7) ECMA JS 모듈
8) 내장 객체
- global: node의 전역 객체
- 브라우저의 window 같은 역할
- 모든 파일에서 접근 가능
- 생략도 가능
- global 속성에 값을 대입하면 다른 파일에서도 사용 가능
//globalA.js
module.exports = () => global.message;
//globalB.js
const A = require('./globalA'); //require()로 globalA의 값을 불러오고
global.message = '안녕하세요'; //사용
console.log(A()); //출력
- 타이머 메서드
- setTimeout(콜백함수, 밀리초): 주어진 밀리초 이후에 콜백 함수를 실행
- setInterval(콜백함수, 밀리초): 주어진 밀리초마다 콜백 함수를 반복 실행
- setImmediate(콜백함수): 콜백 함수를 즉시 실행
- clearTimeout(): 취소 명령
- clearInterval(): 취소 명령
- clearImmediate(): 취소 명령
9) process
- 현재 실행중인 노드 프로세스에 대한 정보
- process.env: 시스템 환경 변수들이 들어있는 객체
10) OS
- os 모듈 메서드
- path 모듈 메서드
- join과 resolve의 차이
- resolve는 /를 절대경로로 처리, join은 상대경로로 처리
- 절대경로: 루트 폴더나 노드 프로세스가 실행되는 위치가 기준
- 상대 경로: 현재 파일 기준
'Node.js' 카테고리의 다른 글
5. MySQL (0) | 2023.04.05 |
---|---|
4. Express 웹 서버 만들기 (0) | 2023.04.05 |
3. 패키지 매니저 (0) | 2023.04.05 |
2. http 모듈로 서버 만들기 (0) | 2023.04.05 |
1. 노드 기본 기능 익히기 (0) | 2023.04.04 |