[Node.js] 기본 사용 모듈

Jihyoung·2022년 7월 7일
0

Node.js

목록 보기
2/2

주요 기본 모듈

프로세스 환경

  • os, process, cluster

파일과 경로, URL

  • fs, path, URL, querystring, stream

네트워크 모듈

  • http, https, net, dgram, dns

전역 객체

process

  • 어플리케이션 프로세스 실행 정보
    env, arch, platform, argv

이벤트 : exit, beforeExit, uncaughtException
함수 : exit, nextTick


Timer 함수

  • 지연 동작 : setTimeout
    - clearTimeout
  • 반복 동작 : setInterval(callback, delay, arg, ...)
    - clearInterval
function sayHello(){
    console.log('HELLO');
}

function sayHi(){
    console.log('HI');
}

setTimeout(function(){
    sayHello();
}, 3*1000);

setInterval(function(){
    sayHi();
}, 2*1000);

Console

  • console.info()
  • console.log()
  • console.warn()
  • console.error()
  • console.time(TIMER_NAME) // start
  • console.timeEnd(TIMER_NAME) // end

일반적인 콘솔 사용

var obj = {
    name : "jihyoung",
    job : "student"
}
console.log(obj); // { name: 'jihyoung', job: 'student' }

Custom Console

var fs = require('fs');
var output = fs.createWriteStream('stdout.log');
var errorOutput = fs.createWriteStream('error.log');


var Console = require('console').Console;
var logger = new Console(output, errorOutput);
 
logger.info('info');
logger.log('log');

logger.warn('warning');
logger.error('error');

유틸리티 모듈

  • 문자열 포맷
    • var util = require('util');
  • 문자열 포맷
    • util.format(format[, ...])
    • %s, %d, %j
      var util = require('util');
      	
      var str1 = util.format('%d + %d = %d', 1, 2, (1+2));
      			console.log(str1);
  • 상속
    • util.inherits(ChildClassFunction, ParentClassFunction)
  • is 함수 (사용 지양)

이벤트

  • 클라이언트 접속 요청

  • 소켓에 데이터 도착

  • 파일 오픈/읽기 완료

  • 이벤트 다룰 수 있는 타입 : Readline 모듈

    • Class : interface

      • rl.close()
      • rl.pause()
    • 이벤트 리스너 함수 등록

      • emitter.addListener(event, listener)
      • emitter.on(event, listener) // 가장 빈번하게 사용
      • emitter.once(event, listener)
    • 이벤트 리스너 함수 삭제

      • emitter.removeListener(event, listener)

      • emitter.removeListener(event, listener)

        process.on('uncaughtException', function(code){
        			console.log('uncaughtException')
          });
        
        				sayHello();

경로 다루기

경로 구성요소 얻기

  • path.basename() : 파일 이름
  • path.dirname() : 파일 경로
  • path.extname() : 확장자

파일 시스템 다루기

  • 파일 시스템 모듈 : fs
비동기식동기식
callback 사용
논-블럭 방식
이름 규칙 + Sync (readFileSync)
블록 방식 - 성능상 주의
반환값 이용
var data = fs.readFileSync('textfile.txt', 'utf8');fs.readFile('textfile.txt', 'utf8', function(error, data){});
callback 함수의 에러 파라미터 사용try catch 문 사용

파일 다루기

  • 파일 디스크립터
  • 파일 경로
  • 파일 종류
    • 문자열 읽기 : 인코딩
    • 바이너리 읽기 : buffer
  • 파일 존재 확인하기
    • deprecated
    • 대신
      • fs.access(Sync) 사용
      • fs.stat(Sync)
  • 접근 상태 확인
    • 접근 가능한지 확인
      • fs.access
      • fs.accessSync
    • 존재 확인
    • 읽기/쓰기/실행여부 확인
  • 파일 상태 얻기
    • fs.stat(path, callback)
    • fs.statSync(path)
  • 파일에 내용 추가
    • fs.appendFile(file, data[, options][, callback])
    • fs.appendFileSync(file, data[, options])
  • 삭제
    • fs.unlint(path, callback)
  • 디렉토리 다루기
    • 생성
      • fs.mkdir(path[,mode], callback), fs.mkdirSync
    • 삭제
      • fs.rmdir(path, callback), fs.rmdirSync

화살표 함수

const printhello = () => console.log("hello")
profile
로그를 생활화

0개의 댓글