[JavaScript] Node.js

Hannahhh·2022년 7월 27일
0

JavaScript

목록 보기
34/47

Node.js?

비동기 이벤트 기반 JavaScript 런타임



⚙ Node.js 내장 모듈 사용 방법


아래의 링크에서 Node.js 내장 모듈 목록을 찾을 수 있으며, 본인이 이해하는 범위만큼 사용할 수 있다.

Node.js 내장 모듈 리스트


Node.js 내장 모듈 (Node.js built-in modules)에는 다양한 모듈이 존재한다.

그 중 파일을 읽거나 저장하는 기능 등을 제공하는 Node.js 내장 모듈은 File System 모듈로,

파일을 읽기 위해서는 readFile 메서드를 사용하며, 파일을 저장하기 위해서는 writeFile 메서드를 사용한다.

모든 모듈은 모듈을 사용하기 위해 불러오는 과정이 필요하며, 브라우저에서 다른 파일을 불러올 때에는 <script>태그를 이용해 불러온다.


// HTML에서 JavaScript 파일을 불러오는 script 태그

<script src="불러오고싶은_스크립트.js"></script>

Node.js에서는 JavaScript 코드 최상단에 require 구문을 이용해 다른 파일을 불러온다.

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

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



3rd-party 모듈 사용 방법

해당 프로그래밍 언어에서 공식적으로 제공하는 Built-in module이 아닌 모든 외부 모듈을 일컫는다. (ex: underscore)

이러한 3rd-party 모듈은 터미널에서 npm install {설치할 3rd-party 모듈} 을 입력해 설치할 수 있다.

ex) underscore 설치

// terminal
npm install underscore

ex) underscore 사용

const undScore = require('underscore');



Node.js 공식문서 가이드

fs.readFile

fs.readFile은 로컬에 존재하는 파일을 읽어오는 메서드로, 비동기적으로 파일 내용 전체를 읽는다.

실행 시, 전달인자 3개를 받는다.

fs.readFile(<path>, <option>, <callback>)

<path>에는 파일 이름을 전달인자로 받으며, 4가지 종류의 타입을 넘길 수 있다.(일반적으로, 문자열)

  • string, buffer, URL, integer

아래는 etc/passwd라는 파일을 불러오는 예제이다.

fs.readFile('/etc/passwd', ..., ...)

<option>은 필수가 아닌 선택적 전달인자로, 문자열 또는 객체 형태로 받을 수 있다.

  • object, string

문자열로 전달할 경우 인코딩을 받으며, 아래 예제는 utf8(문자열)을 두 번째 전달인자(option)로 받는 것을 확인할 수 있다.

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

아래 예제는 두번째 전달인자를 object 형태로 받는 것을 확인할 수 있다.

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

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



<callback>에는 callback 함수를 전달하며, 파일을 읽고 난 후에 비동기적으로 실행되는 함수이다.

callback 함수에는 err, data 로 2가지 매개변수가 존재하며,
errError,AggregationError 를 전달인자로 받고, datastring, Buffer를 전달인자로 받는다.


에러가 발생하지 않으면 errnull이 되며, data에 문자열이나 buffer라는 객체가 전달된다.
data는 파일의 내용이다.

아래는 test.txt 파일을 읽는 예제 코드이다.

fs.readFile('test.txt', 'utf8', (err, data) => {
  if (err) {
    throw err; // 에러를 던집니다.
  }
  console.log(data);
});




Reference: 코드 스테이츠

0개의 댓글