본문 바로가기

Programming/Node.js

4. Node 기능 살펴보기 (8) - fs메서드 살펴보기 1

node js logo image

 

 

 

 

 

앞선 아티클에서 파일을 읽고 쓰는 메서드를 살펴보았습니다. 

 

const fs = require('fs').promises;
const constants = require('fs').constants;

fs.access('./folder', constants.F_OK | constants.W_OK | constants.R_OK)
    .then( () => {
        return Promise.reject('이미 폴더가 존재함');
    })
    .catch( (err) => {
        if (err.code === 'ENOENT') {
            console.log('폴더가 없음');
            return fs.mkdir('./folder');
        }
        return Promise.reject(err);
    })
    .then( () => {
        console.log('폴더 생성 완료');
        return fs.open('./folder/file.js', 'w');
    })
    .then( (fd) => {
        console.log('빈 파일 생성 완료', fd);
        return fs.rename('./folder/file.js', './folder/newfile.js');
    })
    .then( () => {
        console.log('이름 변경 완료');
    })
    .catch( (err) => {
        console.error(err);
    })
    
 
 /* 출력(첫 실행)
 폴더가 없음
폴더 생성 완료
빈 파일 생성 완료 FileHandle {
  _events: [Object: null prototype] {},
  _eventsCount: 0,
  _maxListeners: undefined,
  close: [Function: close],
  [Symbol(shapeMode)]: false,
  [Symbol(kCapture)]: false,
  [Symbol(kHandle)]: FileHandle {},
  [Symbol(kFd)]: 3,
  [Symbol(kRefs)]: 1,
  [Symbol(kClosePromise)]: null
}
이름 변경 완료
*/



/* 출력(재실행)
이미 폴더가 존재함
*/

 

 

우선 현 단계에서 프로미스에 대한 기억이 잘 나지 않을 수 있습니다. 다시 기본적인 프로미스 아티클을 복습해 보도록 하겠습니다. 

 

 

 

2. Javascript ES2015 (6) - 프로미스 [1/5]

당연한 이야기이지만, Javascript와 Node에서는 비동기를 주로 사용하게 되고, 이벤트 리스너에서 콜백 함수에 대한 정의를 자주 쓰게 됩니다. 그러나, 이 콜백 함수들의 사용은 꽤나 코드를 복잡하

nozeroslope.tistory.com

 

 

 

 

2. Javascript ES2015 (6) - 프로미스 [2/5]

우리는 앞선 아티클에서, 프로미스를 생성해 then, catch, finally를 출력하는 과정을 살펴보았습니다. 그런데 여기서 드는 한 가지 의문, then이나 catch는 딱 '한 개만' 실행이 가능한 것일까요? 결론만

nozeroslope.tistory.com

 

 

 

 

2. Javascript ES2015 (6) - 프로미스 [4/5]

앞선 아티클에서 우리는 3개의 뎁스를 가진 콜백 함수 예제를 살펴보았습니다. function findAndSaveUser(Users){ Users.findOne( {}, (err, user) => { // 첫 번째 콜백 if(err){ return console.error(err); } user.name = 'zero'; use

nozeroslope.tistory.com