Node.js 내장모듈를 사용하기 위해 불러오는 구문 require 사용방법을 알아보았는데, 그 중 코드스테이츠 비동기 챕터부분에서 사용했던 redeFile 메소드를 다시 정리해본다.
fs.readFile 메소드는 비동기적으로 지정한 파일내용 전체를 읽는다.
fs.readFile(path[, options], callback)
이 메소드를 실행할 때에는 인자 세 개를 넘길 수 있으다.
path에는 파일 이름을 전달하며, 일반적으로 문자열(string)의 타입으로 넘긴다. (네 가지 종류의 타입을 넘갈 수 있다.)
options에는 어떤 언어로 파일을 읽을 것 인지 인코딩 정보를 전달한다. 필수 인자가 아니지만 보통 사용한다. (일반적으로 urf8을 전달한다.)
UTF-8은 월드 와이드 웹의 가장 일반적인 문자 인코딩으로, 표준 유니코드 문자를 나타낼 수 있다. -> MDN
콜백 함수를 전달한다. 파일을 읽고 난 후 비동기적으로 실행되는 함수이다.
err = Error(에러발생시) or Null(에러 발생 X)
data(파일내용) = string / Buffer
콜백 함수의 파라미터는 err와 data가 있는데,
에러가 발생하지 않을경우? err 는 null 이 되며, data 에 문자열이나 Buffer 라는 객체가 전달된다.
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
// 에러가 발생하지 않았을때 데이터 전송됨
}
});