노트 #37 | Node.js 모듈 활용 개요

HyeonWooGa·2022년 7월 27일
0

노트

목록 보기
38/74

개요

"비동기 이벤트 기반 JavaScript 런타입"인 Node.js와 내장모듈, 서드 파티 모듈에 대해서 학습합니다.


학습 목표

  • Node.js 내장 모듈을 사용할 수 있다.
  • 서드 파티 모듈 (3rd-party module)을 활용할 수 있다.
  • Node.js 공식 문서를 활용하여 fs.readFile 을 이용할 수 있다.

Node.js 내장 모듈을 사용하는 방법

  • 내장 모듈 목록은 다음 링크에서 찾을 수 있습니다.

  • 예를 들어 DNS 모듈의 메서드를 사용하려면 DNS 모듈 사용법 문서를 봅니다.
  • 파일 시스템(fs) 모듈의 메서드를 사용하려면 해당 모듈 사용법 문서를 봅니다.

  • 모듈을 불러오는 방법

    • 브라우저에서 다른 파일을 불러오는 방법
      <script src="불러오고싶은_스크립트.js"></script>
    • Node.js 에서 다른 파일을 불러오는 방법
    // ES6 이후
    
    import fs from "fs";
    import dns from "dns";
    
    // ES6 이전
    
    const fs = require("fs");
    const dns = require("dns");

3rd-party 모듈을 사용하는 방법

  • 서드 파티 모듈 : 해당 프로그래밍 언어에서 공식적으로 제공하는 빌트인 모듈(built-in-module)이 아닌 모든 외부 모듈
  • 예를 들어 underscore 모듈은 Node.js의 내부 모듈이 아니기 때문에 서드 파티 모듈 입니다.
  • 서드 파티 모듈을 다운로드 하기 위해서는 npm을 사용해야 합니다
  • 서드 파티 모듈 설치 및 불러오는 방법
    1. 서드 파티 모듈 설치

      $ npm install underscore
    2. 설치된 서드 파티 모듈 불러오기

      // ES6 이후
      
      import _ from "underscore";
      
      // ES6 이전
      
      const _ = require("underscroe");

fs.readFile

  • fs.RreadFile(path[,options], callback)
    • fs.readFile 비동기적으로 파일 내용 전체를 읽습니다.
    • 전달인자 세 개를 받습니다.
    • path
      • 파일 이름을 전달인자로 받습니다.
      • 네 가지 종류의 타입을 넘길 수 있지만 일반적으로 문자열 타입을 받습니다.
      • <string> | <Buffer> | <URL> | <interger>
    • otions
      • 대괄호로 감싼 두 번재 전달일자 options 는 넣을 수도 있고 안 넣을 수도 있습니다. (대괄호가 선택전 전달인자를 의미합니다.)
      • 두 가지 종류의 타입으로 넘길 수 있고 문자열로 넘기는 경우 인코딩에 해당하는 의미를 갖습니다.
      • <Object> | <string>
    • callback
      • 파일을 읽고 난 후에 비동기적으로 실행되는 콜백 함수를 전달합니다.
      • 콜백 함수에는 두 가지 매개 변수가 존재합니다
        • err (<Error> | <AggregateError>), data (<string> | <Buffer>)
        • 에러가 발생하지 않으면 errnull 이 되고 data<string> 이나 <Buffer> 가 전달 됩니다.

  • 예시
// fs.readFile 예시

import fs from "fs";

fs.readFile("text.txt", "utf8", (err, data) => {
  if (err) {
    throw err; // 에러를 던집니다.
  }
  console.log(data);
}

참고

코드스테이츠 URClass
Node.js 공식문서

profile
Aim for the TOP, Developer

0개의 댓글