Node.js의 파일 시스템 모듈(fs)는 서버 컴퓨터의 파일에 접근하여 작업을 처리할 수 있도록 해 준다.

var fs = require('fs'); // include file system

일반적인 파일 시스템 모듈의 사용법은 아래와 같다.

  • 파일 읽기
  • 파일 생성
  • 파일 쓰기
  • 파일 삭제
  • 파일 재명명(Rename)

파일 읽기

파일 읽기는 fs.readFile() 메소드를 통해 가능하다. 파라미터는 err, date 로 이루어져 있는데, err에는 에러 정보(Boolean)가 담겨 있으며, 성공적으로 데이터를 읽었다면 data 에는 파일의 데이터가 들어가게 된다.

var http = require('http');
var fs = require('fs');
http.createServer(function (req, res) {
  fs.readFile('demofile1.html', function(err, data) {
    res.writeHead(200, {'Content-Type': 'text/html'});
    res.write(data);
    res.end();
  });
}).listen(8080);

파일 생성

Node.js 파일 시스템 모듈을 통해 파일을 생성하는 메소드는 다음과 같다.

  • fs.open() fs.open() 은 파일명 이외에도 flag 라는 파라미터를 요구하는데, 이 flag에 따라 append, write, read 등의 동작이 가능하다. 만약 flag를 입력하지 않는다면, 파라미터의 파일명의 이름을 가진 빈 파일을 생성한다.
var fs = require('fs');
 
fs.open('mynewfile2.txt', 'w', function (err, file) {
  if (err) throw err;
  console.log('Saved!');
});

파일 쓰기

fs.appendFile()과 fs.writeFile()은 파일 쓰기의 역할을 진행한다.

  • fs.appendFile() fs.appendFile() 메소드는 파라미터의 파일이 존재한다면, 그 파일의 뒤에 데이터를 append 하며, 만약 파일이 존재하지 않는다면, 파일을 생성하여, 데이터를 삽입한다.
var fs = require('fs');
 
//create a file named mynewfile1.txt:
fs.appendFile('mynewfile1.txt', 'Hello content!', function (err) {
  if (err) throw err;
  console.log('Saved!');
});
  • fs.writeFile() fs.writeFile()은 파일이 존재한다면 현재 작성하고자 하는 데이터로 내용이 치환되며, 그렇지 않을 경우 새 파일을 생성한다.
var fs = require('fs');
 
fs.writeFile('mynewfile3.txt', 'Hello content!', function (err) {
  if (err) throw err;
  console.log('Saved!');
});

파일 삭제

fs.unlink() 메소드를 통해 파일을 삭제할 수 있다.

var fs = require('fs');
 
fs.unlink('mynewfile2.txt', function (err) {
  if (err) throw err;
  console.log('File deleted!');
});

파일 재명명(Rename)

fs.rename() 메소드를 통해 파일의 이름을 다시 지을 수 있다.

var fs = require('fs');
 
fs.rename('mynewfile1.txt', 'myrenamedfile.txt', function (err) {
  if (err) throw err;
  console.log('File Renamed!');
});