본문 바로가기

STUDY/Node.js

Node.js | 파일 시스템(FileSystem)

※ ATOM 에디터 사용

 

FileSystem 모듈 불러오기

var fs = require('fs');

 

 

파일 생성 및 기입 (writeFile)

var fs = require('fs');

fs.writeFile(__dirname + "/test.txt", "여기는 기입할 내용", function (err) {
  if(err) return console.error(err);
  console.log("파일 생성 및 기입 성공!");
})

 

현재 작업중인 폴더 내에 지정한 파일명으로 파일이 생성된 모습
내용도 잘 들어갔다.

 

 

파일 읽기(readFile)

  • readFileSync
// read file sync
var fdata1 = fs.readFileSync(__dirname+"/test.txt");
console.log(fdata1.toString());
// read file sync
var fdata1 = fs.readFileSync(__dirname+"/test.txt", 'utf-8');
console.log(fdata1);

 

  • readFile: 파일을 비동기적으로 읽음
// read file
var fdata2 = fs.readFile(__dirname+"/test.txt", "utf-8", function (err, datas) {
    if(err) return console.error(err);
    console.log(datas);
})

 

 

파일내용 추가(appendFile)

fs.appendFile(__dirname + '/test.txt', '추가내용 기입', (err) => {
  if (err) throw err;
  console.log('appendFile 성공');
});

내용이 추가된 모습

 

 

파일삭제(unlink)

// delete file
fs.unlink(__dirname+"/test.txt", function (err) {
    if(err) return console.error(err);
    console.log("파일 삭제 완료");
});

test.txt 파일이 삭제된 모습

 

 

 


 

+) 이외의 파일시스템들 알아보기(Node.js 공식 Doc)

 

File System | Node.js v12.13.1 Documentation

 

nodejs.org

 

+) readFile 응용

var http = require('http');
var fs = require('fs');

http.createServer(function (req, resp) {
    fs.readFile(__dirname + "/index.html", function (err, data) {
        if(err) console.log(err);
        console.log('readfile success');

        if(req.method == 'GET'){
            resp.writeHead(200, {'Content-Type':'text/html; charset=utf-8'});
            resp.write(data);
            resp.end();
        }
    })
}).listen(3002);

접속하자마자 index.html을 읽어서 웹 화면에 출력