Node.js

Node.js 기초 3 - 파일 읽기

에포트 2020. 8. 2. 15:28

노드js에서 파일을 다루는 방법을 알아보자. 정보 시스템의 핵심적 메커니즘은 CRUD이다. C는 Create, R은 Read, U는 Update, D는 Delete를 뜻하며, 이 4가지가 정보를 다루는 핵심적 기능들이다. 가장 중요한 것은 C이다. C가 없으면 RUD도 없다. 그 다음으로 중요한건 R이다. R이 없으면 데이터를 작성하는 이유가 없기 때문이다.

 

노드js에서 파일을 다루려면 fs 모듈을 보통 사용한다. fs란, file system의 약자이다.

 

파일을 읽기 위해선 readFile 메서드를 사용하면 된다. 먼저 새로운 파일, readfile.js 라는 파일에 다음과 같은 코드를 작성해 주자.

 

const fs = require('fs');
fs.readFile('sample.txt', (err, data) => {
    console.log(data);
});

 

이제 실행시켜 보면,

 

PS C:\Users\bumsu\nodejs-projects\file_read> node fileread.js
undefined

 

당연히 undefined가 뜬다. readFile 함수에서 호출한 sample.txt 라는 파일이 아직 디렉터리 내에 존재하지 않기 때문이다. sample.txt라는 파일을 만들어 대강 아무 내용이나 넣고 다시 실행시켜 보자.

 

PS C:\Users\bumsu\nodejs-projects\file_read> node fileread.js
<Buffer 48 65 6c 6c 6f 0d 0a 57 6f 72 6c 64 21 0d 0a 3a 50>

 

이번엔 이렇게 뜬다. Buffer 타입의 객체가 생겼다. 이제 UTF-8 인코딩 방식으로 설정해준 후, 다시 실행해 보면,

 

const fs = require('fs');
fs.readFile('sample.txt', 'utf8', (err, data) => {
    console.log(data);
});

 

결과

 

PS C:\Users\bumsu\nodejs-projects\file_read> node fileread.js
Hello
World!
:P

 

제대로 출력되는 것을 볼 수 있다.

 

참고로 첫 번째 인수인 파일 이름에는 디렉터리를 입력하는 것이다. 만약 읽고자 하는 파일이 해당 JS 파일과 같은 디렉터리에 존재하지 않는다면, ../ 또는 /로 디렉터리를 명시해주어야 한다.