[Node.js] 모듈 사용법, fs.readFile 알아보기

Eunji Lee·2022년 11월 24일
0

[TIL] Front-end

목록 보기
2/36
post-thumbnail

Node.js란

  • 비동기 이벤트 기반 JavaScript 런타임
    • 브라우저 밖의 JavaScript라고 볼 수 있음
    • JavaScript를 활용하여 브라우저와 상관없는 작업할 수 있음 ex. 서버 만들기, 모바일 앱 만들기



Node.js 모듈 사용법

모듈(module)

어떤 기능을 조립할 수 있는 형태로 만든 부분

Node.js 내장 모듈 (Node.js built-in modules)

File System 모듈

  • 파일을 읽거나 저장하는 기능 등을 제공하는 Node.js 내장 모듈
  • fs.readFile : 파일을 읽을 때 사용하는 메서드
  • writeFile : 파일을 저장할 때 사용하는 메서드

그 밖의 내장 모듈

Node.js v16.18.1 Documentation

내장 모듈 사용하기

JavaScript 코드 가장 상단에 require 구문을 이용하여 다른 파일을 불러오기

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

3rd-party 모듈(3rd-party module)

해당 프로그래밍 언어에서 공식적으로 제공하는 빌트인 모듈(built-in module)이 아닌 모든 외부 모듈

3rd-party 모듈 설치하기

  • npm install 구문: 서드 파티 모듈 다운로드하기
//서드 파티 모듈인 underscore 설치하기
npm install underscore
  • require 구문: npm을 이용해 설치한 서드 파티 모듈(3rd-party module)을 불러오기
const _ = require('underscore'); // underscore 모듈 불러오기



fs.readFile 알아보기

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

  • 메서드 fs.readFile 은 비동기적으로 파일 내용 전체를 읽음
  • 이 메서드를 실행할 때에는 전달인자 세 개가 필요함

path

  • 파일 이름을 전달인자로 받음
  • 네 가지 종류의 타입(string, Buffer, URL, integer)을 넘길 수 있고, 일반적으로 문자열(string) 타입을 받음
fs.readFile('/example/somefile', ..., ...)

options

  • 문자열(string) 또는 객체(object) 형태로 받을 수 있음
  • 문자 형태를 받는 경우
// /example/somefile 파일을 'utf8'을 사용하여 읽습니다.
fs.readFile('/example/somefile', 'utf8', ...);
  • 객체 형태를 받는 경우
let options = {
  encoding: 'utf8', // utf8 인코딩 방식으로 열기
  flag: 'r' // 읽기 위해 엶
}

// /example/somefile 파일을 options을 활용해서 열기
fs.readFile('/etc/passwd', options, ...) 

callback

callback(err, data)
err : Error 또는 AggregateError
data : string 또는 Buffer

  • 콜백 함수를 전달하며, 이 함수는 파일을 읽고 난 후에 비동기적으로 실행됨
  • 콜백 함수에는 err와 data 두 개의 매개변수가 있음
    • 에러가 발생하지 않으면 err 는 null 이 되며, data 에 문자열이나 Buffer 라는 객체가 전달됨
    • data 는 파일의 내용임
fs.readFile('test.txt', 'utf8', (err, data) => {
  if (err) {
    throw err; // 에러를 던짐
  }
  console.log(data); // 에러가 없으면 data를 콘솔창에 표시
});

0개의 댓글