fs module 이란?

Haizel·2022년 12월 13일
0

🪄 신비한 개발사전

목록 보기
11/11

fs module 이란?


fs module은 File System module 이란 뜻 그대로, "파일 처리와 관련된 전반적인 작업을 하는 모듈" 을 말한다.

fs module 사용방법

  • 파일 최상단에 아래와 같이 작성한다.
  • 의미는 'fs모듈을 불러옴'을 뜻한다.
const fs = require( "fs" );

fs module의 대표 Method


1.filename : '불러올 파일의 위치(경로)'를 뜻한다.

  • string, Buffer, URL, integer타입이 올 수 있다(주로 string 타입 사용)

2. [options] : 가지고 오는 데이터를 어떻게 인코딩을 해줄지 정해주는 인자이다.

  • 생략 가능하다. 하지만 보통은 'utf8'을 넣어준다.
    (영어가 아닌 다른 언어가 포함되어 있는 경우, options에 utf8를 넣지 않으면, 파일이 깨질 수 있다)

3. callback : 콜백함수로, err와 data를 인자로 받는다.


1. readFile ( 읽기파일 )

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

  • filename의 파일을 [options]의 방식으로 읽은 후 callback으로 전달된 함수를 호출한다.(비동기)

fs.readFileSync(filename, [options])

  • filename의 파일을 [options]의 방식으로 읽은 후 문자열을 반환한다.(동기적)
const fs = require('fs');

//1)비동기적 읽기 : fs.readFile
fs.readfile('text.txt', 'utf8', (err, data => {
console.log('비동기적인 ' + data);

//2)동기적 읽기 : fs.readFileSync
let text = fs.readFileSync('text.txt', 'utf8');
console.log('동기적인 ' + text);

})

2. writeFile ( 쓰기파일 )

fs.writeFile(filename, data, [options], callback)

  • filename의 파일에 [options]의 방식으로 data 내용을 쓴 후 callback 함수를 호출한다.(비동기적)

fs.writeFileSync(filename, data, [options])

  • filename의 파일에 [options]의 방식으로 data 내용을 작성한다.(동기적)
const fs = require('fs');
let data = 'fs.writeFile test'

//1)비동기적 읽기 : fs.readFile
fs.writeFile('text.txt', data, 'utf8', function(err) {
console.log('비동기적 파일 쓰기'); });

//2)동기적 읽기 : fs.readFileSync
fs.writeFileSync('text.txt', data. 'utf8');
console.log('동기적 파일 쓰기');

})

예외 처리 방식


1. 동기적 방식의 예외처리

  • 동기적 방식에서는 자바스크립트에서 예외처리를 할 때 일반적으로 써주는 방식인 try~catch 구문으로 처리한다.
  • 쓰기도 마찬가지로 try catch 구문으로 써주면 된다.
//파일이 없는데 읽으려 하는 경우의 예외처리(에러)
const fs = require('fs');

try {
  let data = fs.readFileSync('text.txt', 'utf8')
    }
catch(err) {
  console.log(err);

2. 비동기적 방식의 예외처리

-비동기적 방식에서는 예외가 발생하면 callback 함수의 매개변수 err에 전달되므로, 따로 try~catch 구문을 사용할 필요가 없다.

//파일이 없는데 읽으려 하는 경우의 예외처리(에러)
const fs = require('fs');

fs.readFile('text.txt', 'utf8', function(err, data) {
  if(err) {
    console.log(err);
  }
  else {
    return data;
  }

출처 : fs module 이란

profile
한입 크기로 베어먹는 개발지식 🍰

0개의 댓글