File System 함수를 node js에 가져오는 방법은 require('fs'); 이다.
◎ 파일읽기
▼ 내용
require('fs'); 는 node 모듈에 파일시스템을 가져온다는 의미이다.
fs.readFile 의 첫번쨰 인자는 읽을 파일경로 (현재실행 디렉토리 기준 path 입니다.)
두번째 인자는 문자 캐릭터 (생략시 헥사코드로 나옴 , 바이너리데이터)
세번쨰 인자로 콜백함수를 넣어줬습니다. data 가 읽은 파일의 데이터 입니다.
◎ 파일목록 가져오기
▼ 내용
fs 의 readdir 을 쓰면 파일 목록을 배열에 담아서 가져온다
◎ 파일 생성
▼ 내용
fs.writeFile 의 첫번째인자는 파일명 , 두번째 인자는 파일의 내용 , 세번째는 콜백함수 이다.
콜백함수엔 err을 인자로 줄수있으며 err은 에러가 낫을경우이다.
◎ 파일 이름 수정 , 파일 내용 수정
▼ 내용
fs.rename(oldPath, newPath, callback)
fs.writeFile 의 첫번째인자는 파일명 , 두번째 인자는 파일의 내용 , 세번째는 콜백함수 이다.
콜백함수엔 err을 인자로 줄수있으며 err은 에러가 낫을경우이다.
예제)
◎ 파일 삭제
▼ 내용
fs.unlink(Path, callback)
fs.unlink 의 첫번째인자는 파일경로+파일명, 두번째는 콜백함수 이다.
콜백함수엔 err을 인자로 줄수있으며 err은 에러가 낫을경우이다.
예제)
예제)
◎ 동기와 비동기
▼ 내용
파일의 목록을 콘솔에 출력하고 파일의 내용을 콘솔에 출력하고 싶다.
위와 같이 작성하면 filelist 가 먼저고 그다음 파일 내용을 출력할것 같지만...
그렇지 않다 실상 출력을 해보면 파일 내용 먼저 출력되고 filelist가 출력이된다.
그 이유는 node js의 함수는 기본적으로 모두 비동기로 처리되기 때문이다.
그래서 위의 readFile 과 readdir 의 메소드들은 모두 비동기로 처리가됬다.
이걸 동기로 바꾸려면
이렇게 바꿔야 한다.
node js 의 fs 함수같은경우 비동기 함수와 동기 함수를 모두 제공해준다
대부분 이름을 보면 동기함수 뒤에 Sync 를 붙혀서 제공된다.
단 동기함수같은경운 리턴값을 변수로 받아서 위와같이 작업을 해야한다.
자세한설명은 아래 링크를 참조
'프로그래밍 > NodeJS' 카테고리의 다른 글
NODE js - FORM 데이터 가져오기 (0) | 2019.03.21 |
---|---|
NODE JS - 모듈이란? , module.export 와 exports의 차이 (1) | 2019.03.20 |
NODE JS - PUG 설치와 사용법 (0) | 2019.03.15 |
Node JS - middleware , express 의 url 추가맵핑 , 뷰템플릿 변수설정 (0) | 2019.03.15 |
NODE JS - babel 란? (babel 설치방법) (0) | 2019.03.15 |