정말 생소했던 node.js 모듈에 대해 복습해보려고 한다. 역시 처음할 때는 무슨 말인지 이해도, 집중도 안 되던 것인데 계속 보다보니 아주 미세한 가닥이 잡히는 것 같기도(?)하다.
브라우저에서 사용할 수 있는 비동기 흐름은 setTimeout 이나 DOM 이벤트 핸들링 정도로 제한이 있지만, node.js는 많은 API가 비동기적으로 되어있다.
비동기 이벤트 기반 자바스크립트 런타임
node.js
node.js 내장모듈
모듈을 사용하려면 불러오는 과정이 필요한데, 브라우저를 런타임으로 할 때에는 html에 <script src = "불러올 스크립트.js"></script>
태그를 이용했었다.
node,js에서는 자바스크립트 코드 상단데 require
로 시작한다.
fs모듈을 이용할 때에는 const fs = require('fs')
이런식으로 가장 윗부분에 작성해 주면 된다.
오늘 처음으로 이용했던 모듈은 로컬 파일을 읽어오는 메소드인 fs.readFile
이다.
fs.readFile 공식 API문서
비동기적으로 파일 내용 전체를 읽는다. 메소드를 실행할 때, 인자를 path
options
callback
3가지를 넘길 수 있다.
path <string> / <Buffer> / <URL> / <integer>
path
에는 파일 이름을 인자로 넘길 수 있다. 보통 문자열로 넘긴다.
option <Object> / <string>
말 그대로 옵셔널한 option
이다. 넣을 수도, 그렇지 않을수도 있다.
대괄호는 선택적 인자를 의미한다. 객체 혹은 문자열의 형태로 넘길 수 있는데, 문자열로 전달할 때는 인코딩을 넘긴다.
callback <Function>
파일을 읽고 난 후에 비동기적으로 실행되는 함수이다.
에러가 발생하지 않으면 null
, data(파일의 내용)
에 문자열이나 Buffer라는 객체가 전달된다.
? 어떤 경우에 data
에 문자열로 전달될까?
err <Error>
data <string> | <Buffer>
fs.readFile('', option, callback)