[Node.js] fs.writeFile, fs.writeFileSync 사용법과 간단예시 | 파일 저장

남양주개발자

·

2021. 11. 12. 08:10

728x90
반응형

[Node.js] fs.writeFile, fs.writeFileSync 사용법과 간단예시

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);

test 텍스트 파일이 생성된 예시

JSON 파일도 간단하게 생성할 수 있습니다. JSON 파일을 생성하실 때는 JSON.stringify 메소드와 함께 사용해야 의도한대로 데이터를 저장할 수 있습니다.

const fs = require('fs');

const data = {
  a: 'hello',
  b: '안녕하세요'
};

fs.writeFileSync("test.json", JSON.stringify(data));

JSON.stringify를 사용해서 JSON 파일을 생성

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"));
  }
});

콜백함수 첫 번째 파라미터를 통해 어떤 에러인지 파악하는 예시

728x90
반응형
그리드형

💖 저자에게 암호화폐로 후원하기 💖

아이콘을 클릭하면 지갑 주소가자동으로 복사됩니다

0개의 댓글