Node.js 내장모듈 - fs.readFile() 파일 데이터 읽기

YS_Study.log·2022년 1월 16일
0
post-custom-banner

Node.js 내장모듈를 사용하기 위해 불러오는 구문 require 사용방법을 알아보았는데, 그 중 코드스테이츠 비동기 챕터부분에서 사용했던 redeFile 메소드를 다시 정리해본다.


fs.readFile()

fs.readFile 메소드는 비동기적으로 지정한 파일내용 전체를 읽는다.

fs.readFile(path[, options], callback)

이 메소드를 실행할 때에는 인자 세 개를 넘길 수 있으다.


path (string / Buffer / URL / integer)

path에는 파일 이름을 전달하며, 일반적으로 문자열(string)의 타입으로 넘긴다. (네 가지 종류의 타입을 넘갈 수 있다.)

options (Object / string)

options에는 어떤 언어로 파일을 읽을 것 인지 인코딩 정보를 전달한다. 필수 인자가 아니지만 보통 사용한다. (일반적으로 urf8을 전달한다.)

UTF-8은 월드 와이드 웹의 가장 일반적인 문자 인코딩으로, 표준 유니코드 문자를 나타낼 수 있다. -> MDN

callback (err, data)

콜백 함수를 전달한다. 파일을 읽고 난 후 비동기적으로 실행되는 함수이다.

err = Error(에러발생시) or Null(에러 발생 X)
data(파일내용) = string / Buffer

콜백 함수의 파라미터는 err와 data가 있는데,
에러가 발생하지 않을경우? err 는 null 이 되며, data 에 문자열이나 Buffer 라는 객체가 전달된다.

ex) fs.readFile() 사용하여 test.txt파일 데이터 읽기

test.txt라는 파일명의 파일을 'utf8'으로 인코딩하여 읽어온다.
만약에 파일읽기를 실패하여 에러가 뜬다면 err라고 출력하고, 파일 읽기을 성공했다면 해당 데이터를 보여준다.

const fs = require("fs"); 
// 모듈을 사용하기 위한 과정
  fs.readFile(test.txt, "utf8", function (err, data) {
    if (err) {
      callback(err, null);
      // 에러가 발생했을때 err
      // 에러가 발생하지 않았을때  null
    } else {
      callback(null, data);
      // 에러가 발생했을때 null
      // 에러가 발생하지 않았을때 데이터 전송됨
    }
  });
profile
느리지만 조금씩 공부하는 중 입니다. 현재 1년 6개월차 신입입니다 ><!
post-custom-banner

0개의 댓글