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 |