fs 모듈이란?
FileSystem의 약자로 fs모듈은 Node.js에서 파일 입출력 처리를 할 때 사용한다.
fs 모듈을 사용하기 위해서 require 함수를 활용하거나, ES모듈 사용 시 import/export 방식으로 불러올 수 있다.
다만, ES모듈을 사용하기 위해서는 1. 해당 파일의 확장자를 .mjs로 바꿔주거나 2. package.json에 "type": "module"을 추가해야한다.
const fs = require('fs');
// ES 모듈 사용 시
import fs from 'fs';
fs 메서드 중 파일을 읽어들이는 함수로 readFile(비동기 방식)과 readFileSync(동기 방식)가 있는데 비동기 방식을 사용할 때 콜백함수를 호출한다는 차이 외에 사용법은 동일하다.
readFileSync()
// fs.readFileSync('파일경로','options')
// 혹은 fs.readFileSync('파일경로','encoding')
const main_view = fs.readFileSync('./main.html','utf-8');
- 파일 경로 : 파일의 상대경로
- options: 인코딩 및 플래그를 포함하는 선택적 매개변수, 인코딩에는 데이터 사양이 포함된다. 기본값은 원시 버퍼를 반환하는 null이며 플래그에는 파일의 작업 표시가 포함된다. 기본값은 'r'이다.
-> 인코딩 옵션을 넣지 않으면 Buffer 객체(바이너리 데이터)를 반환하기 때문에 utf-8 인코딩 옵션을 넣어줘야 함
- return: 해당 메서드는 파일의 내용을 반환한다.
readFile()
해당 메서드는 전체 파일을 버퍼로 읽는다.
// fs.readFile('파일경로',encoding,callback)
fs.readFile('./img/redRacket.png', function(err, data){
if(err){
console.log(err);
}
else{
// head 적기 : 상태코드, 요청타입
response.writeHead(200, {'Content-Type' : 'text/html'});
// write body. body 적기
response.write(data);
// response 종료. 전송바람
response.end();
}
})
- 파일 경로 : 읽을 파일의 이름이나 다른 위치에 저장된 경우, 전체 경로
- encoding : 파일의 인코딩을 보유. 기본값은 'utf8'이다.
- callback : 파일을 읽은 후 호출되는 콜백함수
- err: 작업에 실패하면 반환되는 오류 (callback함수 첫 번째 인자)
- data: (성공시) 파일의 내용 (callback함수 두 번째 인자)
'개발지식 > Node.js' 카테고리의 다른 글
| [express] express-generator 폴더 구조 및 파일 역할 (0) | 2025.09.22 |
|---|---|
| [Express] Express의 정의와 기본 구조 (0) | 2025.09.16 |
| [Node.js] Node.js 기본 생태계 (0) | 2025.09.15 |
| [Node.js]Node.js의 동작원리 (1) | 2025.09.12 |