
Node.js 내장 모듈 (Node.js built-in modules)에는 다양한 모듈이 존재한다.
모든 모듈은 모듈을 사용하기 위해 불러오는 과정이 필요하다.
브라우저에서 다른 파일을 불러올 때에는 다음과 같이 <script> 태그를 이용한다.
<script src="불러오고싶은_스크립트.js"></script>
script 태그Node.js 에서는 JavaScript 코드 가장 상단에 require 구문을 이용하여 다른 파일을 불러온다.
const fs = require('fs'); // 파일 시스템 모듈을 온다
const dns = require('dns'); // DNS 모듈을 불러온다
// 이제 fs.readFile 메서드 등을 사용할 수 있다!
require 구문File System 모듈
- 파일을 읽거나 저장하는 기능 등을 제공하는 모듈이다.
readFile메서드 : 파일을 읽을 때
writeFile메서드 : 파일을 저장할 때
underscore는 Node.js 공식 문서에 없는 모듈이기 때문에 서드 파티 모듈이다.underscore 와 같은 서드 파티 모듈을 다운로드하기 위해서는 npm을 사용해야 한다.npm install underscoreunderscore 모듈을 설치한다.underscore가 설치되면 Node.js 내장 모듈을 사용하듯 require 구문을 통해 underscore 를 사용할 수 있다.const _ = require('underscore');underscore를 사용할 수 있다.fs.readFile을 통해 알아보는 Node.js 공식문서 가이드fs.readFile 은 로컬에 존재하는 파일을 읽어온다.fs.readFile 은 비동기적으로 파일 내용 전체를 읽는다.\<string> | \<Buffer> | \<URL> | \<integer><string>)의 타입을 받는다.fs.readFile('/etc/passwd', ..., ...)\<Object> | \<string>대괄호로 감싼 두 번째 전달인자 options는 넣을 수도 있고, 넣지 않을 수도 있다.
대괄호는 선택적 전달인자를 의미한다.
options는 문자열 또는 객체 형태로 받을 수 있다.
두 번째 전달인자 options에 문자열을 전달한 경우
// /etc/passwd 파일을 'utf8'을 사용하여 읽는다.
fs.readFile('/etc/passwd', 'utf8', ...);
'utf8' 을 두 번째 전달인자로 받는 것을 확인할 수 있다.두 번째 전달인자 options에 객체를 전달한 경우
let options = {
encoding: 'utf8', // utf8 인코딩 방식으로 연다
flag: 'r' // 읽기 위해 연다
}
// /etc/passwd 파일을 options를 사용하여 읽는다.
fs.readFile('/etc/passwd', options, ...)
\<Function>err \<Error> | \<AggregateError>
data \<string> | \<Buffer>
콜백 함수를 전달한다.
파일을 읽고 난 후에 비동기적으로 실행되는 함수이다.
콜백 함수에는 두 가지 매개변수가 존재한다.
에러가 발생하지 않으면 err 는 null 이 되며, data 에 문자열이나 Buffer 라는 객체가 전달된다. data 는 파일의 내용이다.
fs.readFile('test.txt', 'utf8', (err, data) => {
if (err) {
throw err; // 에러를 던진다.
}
console.log(data);
});
fs.readFile로 파일의 데이터를 읽을 수 있다.