3. Node.js & 내장 모듈(1)

Hyun·2023년 4월 28일
0

nodejs

목록 보기
3/19
post-thumbnail

1. Node.js에서 JS 파일 실행하기

업로드중..

.js 는 생락해도 되고 실행 명령어는 node [파일명]이다.

2. 모듈(Module)

  • 분리된 각각의 자바스크립트 파일이고 각 파일은 특정한 목적을 가진 여러 개의 함수와 변수의 집합
  • 모듈로 만들어진 JS 파일은 require() 함수를 통해서 가져올 수 있다. 이때 require의 인수는 불러올 모듈의 경로를 전달
  • 모듈을 사용하는 이유는 결국 재사용을 위해서이다.

3. 내장모듈(Module)

1) Console

  • Node.js에서 파일 쓰기와 같은 스트림에 사용
  • console 모듈은 전역 객체로 등록되어 require 안해도 됨

1) console.log : 일반적인 로그를 콘솔에 출력
2) console.error : 에러를 콘솔에 출력
3) console.table : 배열/오브젝트를 테이블 형태로 콘솔에 출력
4) console.time / console.timeEnd : 전달한 인수 값이일치하는 코드 사이의 실행 시간을 측정하여 출력
5) console.dir : 객체를 콘솔에 출력할때 사용

2) Timers

  • Node.js에서 타이머 함수는 웹 브라우저의 타이머 API와 유사

1) setTimeout(콜백함수,밀리초) : 설정한 밀리초 이후에 지정된 콜백 함수가 실행. 선언 시 할당한 변수명을 사용해서 clearTimeout(변수명)을 통해 setTimeout을 취소할 수도 있음
설정한 밀리초보다 빨리 실행되지는 않지만 밀리초 후에 실행된다는 보장x => 이벤트 루프를 블로킹하거나 이벤트 큐에 보유하고 있는 다른 실행 코드가 타임아웃의 실행을 뒤로 밀 수 있기때문

2) setInterval(콜백함수,밀리초) : 설정한 밀리초마다 지정된 콜백 함수가 실행, clearInterval(변수명)으로 취소 가능


3) setImmediate(콜백 함수) : 현재 이벤트 루프 주기 끝에 코드를 실행 함수 호출 뒤에오는 모든 코드가 먼저 실행된 후 바로 다음에 실행
clearImmediate(변수명)으로 취소 가능

3) Process

  • Process 객체는 현재 실행되고 있는 Node.js 프로세스에 대한 정보와 제어를 제공
  • Process Event
    1) beforeExit : Node.js가 이벤트 루프를 비우고 예약할 추가 작업이 없을 때 발생되는 이벤트, 일반적으로 Node.js 프로세스는 예정된 작업이 없는 경우 종료되지만, beforeExit 이벤트에 등록된 리스너가 비동기식 호출을 하여 프로세스 계속가능

  • exit: process.exit()를 호출하거나 이벤트 루프가 더 이상 수행할 추가 작업이 없을때 발생

  • disconnect : 프로세스가 IPC 채널(클러스터로 자식 프로세스를 생성했을 때)로 생성된 경우 IPC 채널이 닫힐때 disconnet 이벤트 발생

  • message : 프로세스가 IIPC 채널(클러스터로 자식 프로세스를 생성했을 때)로 생성된 경우 childprocess.send()를 사용해서 상위 프로세스가 보낸 메시지를 하위 프로세서에서 수신할 때마다 발생
  • process.env : 사용자 환경을 포함하는 객체를 반환

  • process.nextTick : 이벤트 루프는 다른 콜백 함수보다 nextTick의 콜백 함수를 우선적으로 처리

  • process.exit : 함수 호출시 프로세스 종료 == 서버 종료
    forever 기능을 적용하면 자동으로 재시작되고 변경된 옵션이 반영
    0 : 정상종료, 1 : 비정상종료

4) Path

  • 파일과 디렉터리 경로 작업을 위한 유틸리티 제공
  • os 별로 파일 경로 관리하는 방식이 달라 필요(ex. window: \ , mac & linux : / )
  • path 모듈을 사용하기 위해서 require() 해야함
  • path.basename(path,[,ext]) : 경로의 마지막 부분을 반환
const path = require("path")
console.log(__filename) // 현재 파일의 절대 경로
console.log(path.basename(__filename)) // 경로의 마지막 부분
console.log(path.basename(__filename, ".js")) // 경로의 마지막 부분에서 확장자 제거

업로드중..

  • path.extname(path) : 파일의 확장자를 반환
console.log(path.extname('index.html')) // 출력: .html

0개의 댓글