Node.js의 'fs' 모듈을 활용해서 파일 I/O 작업을 구현할 수 있습니다. fs 모듈의 메서드는 동기식일 수도 있고 비동기식일 수도 있습니다. 비동기 함수에는 비동기 함수의 완료를 나타내는 마지막 매개변수로 콜백 함수가 있습니다. writeFileSync(동기식), writeFile(비동기식)으로 비동기식 메소드가 콜백함수가 존재하는 점을 제외하고는 구현하는 방식은 동일합니다.
writeFileSync
- file: 저장할 파일의 경로, 파일명, 확장자명을 기입합니다.
- data: 파일에 기록될 데이터 양식
- options: 3개의 선택적 매개변수가 있습니다.
- encoding: 파일의 인코딩을 지정하는 문자열 값입니다. 기본값은 'utf8'입니다.
- mode: 파일 모드를 지정하는 정수 값입니다. 기본값은 0o666입니다.
- flag: 파일에 쓰는 동안 사용되는 플래그를 지정하는 문자열 값입니다. 기본값은 'w'입니다.
fs.writeFileSync( file, data, options )
사용방법
const fs = require('fs');
const data = "텍스트";
fs.writeFileSync("test.txt", data);
JSON 파일도 간단하게 생성할 수 있습니다. JSON 파일을 생성하실 때는 JSON.stringify 메소드와 함께 사용해야 의도한대로 데이터를 저장할 수 있습니다.
const fs = require('fs');
const data = {
a: 'hello',
b: '안녕하세요'
};
fs.writeFileSync("test.json", JSON.stringify(data));
writeFile
fs.writeFile() 메서드는 지정된 데이터를 파일에 비동기적으로 쓰는 데 사용됩니다. 기본적으로 파일이 있으면 대체됩니다. '옵션' 매개변수는 메서드의 기능을 수정하는 데 사용할 수 있습니다.
- file: 저장할 파일의 경로, 파일명, 확장자명을 기입합니다.
- data: 파일에 기록될 데이터 양식
- options: 3개의 선택적 매개변수가 있습니다.
- encoding: 파일의 인코딩을 지정하는 문자열 값입니다. 기본값은 'utf8'입니다.
- mode: 파일 모드를 지정하는 정수 값입니다. 기본값은 0o666입니다.
- flag: 파일에 쓰는 동안 사용되는 플래그를 지정하는 문자열 값입니다. 기본값은 'w'입니다.
- callback: 메소드가 실행될 때 호출되는 함수입니다.
- err: 작업에 실패하면 반환되는 오류
fs.writeFile( file, data, options, callback )
사용방법
writeFile 메소드 사용방법은 아래와 같습니다. writeFileSync(동기식)과는 다르게 writeFile 메소드는 비동기식으로 동작함으로 콜백함수로 메소드 결과를 받아볼 수 있습니다. 만약 에러라면 콜백함수 첫 번째 파라미터(에러)를 통해 에러 내용을 확인할 수 있습니다.
const fs = require('fs');
const data = {
a: 'hello',
b: '안녕하세요'
};
fs.writeFile("test.json", JSON.stringify(data), (err) => {
if (err)
console.log(err);
else {
console.log("File written successfully\n");
console.log("The written has the following contents:");
console.log(fs.readFileSync("test.txt", "utf8"));
}
});
'개발 > Node.js' 카테고리의 다른 글
[Node.js] Buffer to String 처리방법과 간단예시 | readFileSync encoding (0) | 2021.11.17 |
---|---|
[Node.js] 폴더 안에 모든 파일 삭제하는 방법 (How to remove all files from directory) (0) | 2021.11.12 |
Node.js 티스토리 파일 업로드 API 구현하는 방법(multipart/form-data 이놈..) (1) | 2021.01.05 |
Node.js에서 캔버스(Canvas)로 이미지 만들고 저장하는 방법 (0) | 2021.01.04 |
Node.js에서 EUC-KR 한글 깨짐 해결방법 (3) | 2020.02.26 |
이 포스팅은 쿠팡파트너스 활동의 일환으로, 이에 따른 일정액의 수수료를 제공받습니다.