코딩공부/T.I.L

2022-01-25 Node.js 모듈 사용법

지구야 사랑해 2022. 1. 25. 13:03

Node.js의 뜻

 

- 비동기 이벤트 기반 자바스크립트 런타임, 로컬 환경에서 자바스크립트를 실행할 수 있는 자바스크립트 런타임.

 

또한 Node.js는 브라우저에서 불가능한 몇 가지 일이 가능한데... 그 중 하나가 Node.js 모듈 사용

 

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

 

개발자는 자신이 이해하는 범위만큼 모듈 사용가능. 예컨대, DNS에 대한 지시을 알고 있다면

DNS 모듈 사용법 문서에서 관련 메서드를 사용할 수 있음.

 

등등...

 

HTML에서 에서 모듈을 사용하기 위해 불러오려면

 

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

근데 Nods.js에서 불러오려면

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

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

서드파티 모듈을 사용하는 방법

 

1. 터미널에서 underscore 설치

 

`npm install underscore`

 

 

2.  `require` 구문을 통해 underscore 사용

const _ = require('underscore');

 

fs.readFile을 통해 알아보는 Node.js 공식문서 가이드

 

 

- 메서드 fs.readFile 은 로컬에 존재하는 파일을 읽어옴

 

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

 

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

path에는 파일 이름을 인자로 넘길 수 있음. 네 가지 종류의 타입을 넘길 수 있지만

일반적으로 문자열 타입으로 넘김. 

 

Ex1) /etc/passwd 파일을 불러오는 예제

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

 

  • options \<Object> | \<string>

대괄호로 감싼 두 번째 인자 options는 넣을 수도 있고, 넣지 않을 수도 있음.

 

options는 객체 형태 또는 문자열로 넘길 수 있음. 문자열로 전달할 경우 인코딩을 넘김.

 

Ex2) 인코딩 정보를 전달하는 예제

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

// /etc/passed 파일을 옵션을 사용하여 읽습니다.
fs.readFile('/etc/passwd', options, ...)
  • callback \<Function>
    • err \<Error>
    • data \<string> | \<Buffer>

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

 

- 콜백 함수에는 두 가지 매개변수가 존재함. 에러가 발생하지 않으면 err는 null이 되며,

 

data에 문자열이나 Buffer라는 객체가 전달됨. 여기서 data는 파일 내용

 

- 질문: data 에는 문자열이나 Buffer 가 전달됩니다.

어떤 경우에 문자열로 전달되는 것일까요? 힌트는, 공식 문서의 다음 내용에 나와 있습니다.

If no encoding is specified, then the raw buffer is returned.

옵션에 utf-8이 없다면 이상한 내용으로 들어오는것 같음

'코딩공부 > T.I.L' 카테고리의 다른 글

2022-01-27 클라이언트-서버 아키텍쳐  (0) 2022.01.27
2022-01-26 fetch를 이용한 네트워크 요청  (0) 2022.01.26
2022-01-25 타이머 API  (0) 2022.01.25
2022-01-25 비동기  (0) 2022.01.25
2022-01-24 비동기 intro  (0) 2022.01.24