[JavaScript] Node.js

유아현·2022년 11월 23일
0

JavaScript

목록 보기
20/25
post-thumbnail

Node.js

  • 비동기 이벤트 기반 JavaScipt 런타임
  • Node.js의 경우에는 많은 API가 비동기로 작성돼 있다

🤔 모듈이란?

  • 건축으로부터 비롯된 모듈이라는 단어
  • 어떤 기능을 조립할 수 있는 형태로 만든 부분
  • fs(File System) 모듈: PC 파일을 읽거나 저장하는 등의 일을 할 수 있게 도와준다
  • 모든 모듈은 모듈을 사용하기 위해 불러오는 과정이 필요하다!

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

  1. ❗ 파일을 읽을 때 쓰는 메서드
    readFile

  2. ❗ 파일을 저장할 때 메서드
    writeFile

💨 Node.js에서 다른 파일을 불러오는 require 구문

const fs = require('fs'); // 파일 시스템 모듈을 불러옵니다
const dns = require('dns'); // DNS 모듈을 불러옵니다

// 이제 fs.readFile 메서드 등을 사용할 수 있습니다!

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

🤔 서드 파티 모듈?

  • 해당 프로그래밍 언어에서 공식적으로 제공하는 빌트인 모듈이 아닌 모든 외부 모듈
  • ex) Node.js에서 underscore는 Node.js 공식 문서에 없는 모듈이기 때문에 서드 파티 모듈이다.
  • underscore와 같은 서드 파티 모듈을 다운로드하기 위해서 npm 사용

🤔 어떻게 설치?

  • 터미널에 다음과 같이 입력하여 underscore와 같은 서드 파티 모듈 설치

    npm install underscore
    npm install [모듈명]

  • 다음 과정이 끝나면 node_modules에 underscore가 설치가 되며, Node.js의 내장 모듈을 사용하는 것과 같이 require 구문을 통해서 사용할 수 있다

    const _ = require('underscore');

fs.readFile을 통해 알아보는 Node.js 공식문서 가이드

🤔 fs.readFile

  • 메서드 fs.readFile은 로컬에 존재하는 파일을 읽어온다

fs.readFile(path[, options], callback)
- fs.readFile은 비동기적으로 파일 내용 전체를 읽는다

[fs.readFile 메서드의 전달인자]

  1. path \<string> | \<Buffer> | \<URL> | \<integer>
    - 파일 이름을 전달인자로 받음
    - 4가지 종류의 타입을 넘길 수 있지만, 일반적으로 문자열 타입을 받는다

    // `'etc/passwd' 라는 파일을 불러오는 예제
    fs.readFile('/etc/passwd', ..., ...)

  2. option \<Object> | \<string>
    - 대괄호로 감싼 두 번째 전달인자 option은 넣을 수도 있고, 넣지 않을 수도 있다.
    - 대괄호는 선택적 전달인자를 뜻한다!!
    - option은 문자열 or 객체 형태로 받을 수 있다
    - 문자열로 전달할 경우

    // /etc/passwd 파일을 'utf8'을 사용하여 읽습니다.
    fs.readFile('/etc/passwd', 'utf8', ...)

    - 객체로 전달할 경우

    let options = {
    encoding: 'utf8', // utf8 인코딩 방식으로 엽니다
    flag: 'r' // 읽기 위해 엽니다
    }

  1. callback \<Function>

    err \<Error> | \<AggregateError>
    data \<string> | \<Buffer>

  • 콜백 함수를 전달해, 파일을 읽고 난 후 비동기적으로 실행되는 함수
  • 콜백 함수에는 두 가지 매개변수가 존재한다
  • 에러가 발생하지 ❌? : err는 null이 되며 data에 문자열이나 Buffer라는 객체가 전달

0개의 댓글