728x90
반응형
SMALL
1. fs(file system)
- 파일 시스템과 상호작용하기 위한 API를 제공
- 이 모듈을 사용하면 파일 생성, 읽기, 쓰기, 수정, 삭제 등과 같은 파일 시스템 조작을 수행
2. 동기식 처리와 비동기식 처리
2-1. 비동기적 처리
- fs 모듈에서 파일 시스템과 상호작용하는 메서드는 대부분 비동기적인 방식으로 동작
- 비동기적으로 동작하는 메서드는 콜백 함수를 인자로 받아 해당 작업이 완료되면 콜백 함수가 실행
- 파일 시스템 작업이 끝날 때까지 기다리지 않고 다른 작업을 수행할 수 있음 ➡ 비동기적
2-2. 동기적 처리
- fs 모듈은 동기적으로 동작하는 메서드도 제공
- 동기적으로 동작하는 메서드는 호출한 즉시 결과값을 반환
- 대부분 이름 끝에 Sync가 붙어서 표시
- 동기적인 메서드를 사용하면 해당 작업이 완료될 때까지 프로그램이 대기하므로, 작업이 매우 짧거나 단순한 경우에만 사용함
const fs = require('fs');
const data = fs.readFileSync('file.txt', 'utf8');
console.log(data);
3. 메서드
- fs.readFile(path[, options], callback): 주어진 경로에 있는 파일의 내용을 비동기적으로 읽어옴
- fs.writeFile(file, data[, options], callback): 주어진 경로에 있는 파일에 데이터를 비동기적으로 씀
- fs.appendFile(file, data[, options], callback): 주어진 경로에 있는 파일의 끝에 데이터를 비동기적으로 추가
- fs.unlink(path, callback): 주어진 경로에 있는 파일을 비동기적으로 삭제
- fs.mkdir(path[, options], callback): 주어진 경로에 디렉토리를 비동기적으로 생성
- fs.readdir(path[, options], callback): 주어진 경로에 있는 디렉토리의 파일 목록을 비동기적으로 읽어옴
- fs.stat(path, callback): 주어진 경로에 있는 파일의 상태 정보를 비동기적으로 반환
- fs.createReadStream(path[, options]): 주어진 경로에 있는 파일을 읽기 위한 스트림 객체를 생성
- fs.createWriteStream(path[, options]): 주어진 경로에 있는 파일에 데이터를 쓰기 위한 스트림 객체를 생성
// fs의 promises 기능만 가져오기
const fs = require('fs').promises;
// 파일 읽기
// 두번째 매개변수에 원하는 인코딩방식을 적어주면 인코딩된 결과를 담아줌!
fs.readFile('./test.txt', 'utf8')
.then((data) => console.log(data)) // data에 읽어온 내용을 담음
.catch(console.error)
console.log('---------------')
// data 결과 <Buffer 48 65 6c 6c 6f 21 20 4e 6f 64 65 2e 6a 73 21>
// 인코딩되지 않은 기계어로 저장됨, 인코딩해서 원하는대로 사용할 수 있도록
// 파일 쓰기(출력)
fs.writeFile('./write.txt', 'Hello! 파일 출력 예제입니다!')
.catch(console.error) // 에러처리 해줘야함!
// 기존 파일에 추가 출력
fs.appendFile('./write.txt', '추가로 글을 출력합니다!')
.catch(console.error)
// 복사
fs.copyFile('./test.txt', './test2.txt')
.catch(console.error)
// 디렉토리 생성하기
fs.mkdir('subdir') // 생성할 폴더의 이름, 이름이 기존에 있으면 error
.catch(console.error)
// 현재경로의 파일을 불러옴
fs.readdir('./')
.then(console.log)
.catch(console.error)
728x90
반응형
LIST
'Web > Nodejs' 카테고리의 다른 글
[Node.js] npm(Node Package Manager) - 라이브러리 설치, nodemon 설치하기! (0) | 2023.04.30 |
---|---|
[Node.js] 버퍼(Buffer) (0) | 2023.04.26 |
[Node.js] 모듈 - 3️⃣ path (0) | 2023.04.26 |
[Node.js] 모듈 - 2️⃣ process (0) | 2023.04.25 |
[Node.js] 모듈(module) 사용하기 - 내보내기, 사용하기! (0) | 2023.04.24 |