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 underscore
underscore
모듈을 설치한다.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
로 파일의 데이터를 읽을 수 있다.