(SEB_FE) Section2 Unit3 Node.js

PYM·2023년 3월 20일
0

(SEB_FE) SECTION2

목록 보기
5/19
post-thumbnail
  • Node.js 내장 모듈을 사용할 수 있다.
  • 서드 파티 모듈 (3rd-party module)을 활용할 수 있다.
  • Node.js 공식 문서를 활용하여 fs.readFile을 이용할 수 있다.

🏀Node.js 란?

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

🏀Node.js 내장 모듈을 사용하는 방법

  • Node.js 내장 모듈 목록

  • 모든 모듈은 '모듈을 사용하기 위해 불러오는 과정'이 필요

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

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

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

🏅대표적인 예시

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

파일을 읽을 때는 readFile 메서드, 파일을 저장할 때는 writeFile 메서드를 사용

🏀3rd-party 모듈을 사용하는 방법

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

  • 예를 들어, Node.js에서 underscore는 Node.js 공식 문서에 없는 모듈이기 때문에 서드 파티 모듈이라고 할 수 있다.

  • underscore 와 같은 서드 파티 모듈을 다운로드하기 위해서는 npm을 사용한다.
    (ex. npm install underscore ➡ node_modules 폴더에 다운된다.)

  • 다운 후에는 Node.js 내장 모듈을 사용하듯 require 구문을 통해 사용할 수 있다.
    (ex. const _ = require('underscore'); )

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

  • 메서드 fs.readFile 은 비동기적으로 파일 내용 전체를 읽는다.

  • 이 메서드를 실행할 때에는 전달인자 세 개를 받는다.

🏅path \<string> | \<Buffer> | \<URL> | \<integer>

  • 파일 이름을 전달인자로 받음
  • 아래의 네 종류의 타입을 넘길 수 있지만 일반적으로 문자열(<string>) 타입
    • <string> | <Buffer> | <URL> | <integer>
// 'etc/passwd' 라는 파일을 불러오는 예제
fs.readFile('/etc/passwd', ..., ...)

🏅options \<Object> | \<string>

  • 대괄호(선택적 전달인자를 의미)로 감싼 두 번째 전달인자 options는 넣을 수도 있고, 넣지 않을 수도 있다.
  • 문자열 또는 객체 형태로 받을 수 있다
    • 문자열로 전달할 경우 인코딩을 받는다
// 두 번째 전달인자 options에 문자열을 전달한 경우
// `/etc/passwd` 파일을 'utf8'을 사용하여 읽는 코드
fs.readFile('/etc/passwd', 'utf8', ...);

// 두 번째 전달인자 options에 객체를 전달한 경우            
let options = {
  encoding: 'utf8', // utf8 인코딩 방식으로 연다
  flag: 'r' // 읽기 위해 연다
}

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

🏅callback \<Function>

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

  • 콜백 함수에는 두 가지 매개변수가 존재.
    에러가 발생하지 않으면 errnull 이 되며, data 에 문자열이나 Buffer 라는 객체가 전달된다. ( data 는 파일의 내용 )

  • data 에 문자열이 전달되는 경우는 어떤 경우일까?

profile
목표는 "함께 일하고 싶은, 함께 일해서 좋은" Front-end 개발자

0개의 댓글