상세 컨텐츠

본문 제목

[fs] File System 모듈

Node.js

by 메타샤워 2023. 7. 19. 14:43

본문

File System 모듈

 File system 모듈 추출 방법
var fs = require('fs')
fs 모듈은 node.js의 built-in 모듈 이므로 따로 설치할 필요는 없다.

File system 모듈의 메소드는 광장히 많고 대부분의 파일 처리와 관련된 메소드들을 제공해주고 있다. 

File System 모듈은 대부분 API를 동기/ 비동기 두가지 방식으로 처리할 수 있도록 제공하고 있다.
node.js에서는 대부분읜 연산 작업을 비동기 방식으로 제안하지만 피치 못하게 동기적으로 처리해야 하는 경우가 있다.
동기 형식의 경우 비동기 메소드에 ' ~ Sync' 접미사를 붙여 주면 된다.

 파일 읽기

비동기 형식의 파일 읽기는 fs.readFile('filename' , [option], callback) 메서드를 사용한다.
 
// fs 모듈 추출
var fs = require('fs');
// 비동기로 파일 읽기
fs.readFile('test.txt', 'utf8', function (err, data) {
    if (err) throw err;
    console.log(data);
});
node.js를 시작하면 기본적으로 __dirname이라는 환경변수가 생성되는데 커맨드를 통해 실행되는 node.js 의 파일이 있는 절대 경로를 가지고 있는 변수이다. 예를 들어 커맨드로   node app.js    를 실행했다면 '__dirname'은 app.js의 절대경로를 가지게 된다. (cf . c:\node.js\app.js 이러한 경로를 가지게 될것이다)
 
readFile을 사용할때 첫번째 인자로 __dirname + '/index.html'  이렇게 입력하면 app.js와 같은 경로에 있는 index.html 파일을 불러 올수 있게 된다. 
 
동기식 파일 읽기 처리 방법은 fs.readFileSync('filename;, [option] ) 메소드를 이요하여 파일 내용을 반환한다.
var data = fs.readFileSync('test.txt', 'utf8');
console.log(data);
  파일 확인
 
비동기식 파일확인 - fs.exists( path, callback )
동기식 파일 확인   - fs.existsSync ( path )
// fs 모듈 
var fs = require('fs');
 
// 비동기로 파일 확인
fs.exists('test1.txt', function (exists) {
 console.log('fs.exists : ', exists);
});
 
// 동기로 파일 확인
var exists = fs.existsSync('test.txt');
console.log('fs.existsSync :', exists);
파일 쓰기 
 
비동기식 파일 쓰기 - fs.writeFile( ' filename ' , data , [ option ], callback )
동기식 파일 쓰기 - fs.writeFileSync ( 'filename' , data , [option] )
// fs 모듈 추출
var fs = require('fs');
 
// 비동기로 파일 쓰기
fs.writeFile('message.txt', 'Hello Node', 'utf8', function (err) {
    if (err) throw err;
    console.log('It is saved');
});
 
// 동기로 파일 쓰기
fs.writeFileSync('message1.txt', 'Hello Node', 'utf8');

 

'Node.js' 카테고리의 다른 글

[MYSQL] node.js에서 mysql 연결하기  (0) 2023.07.19
[OS] os 모듈  (0) 2023.07.19
[Express] Express.js를 살펴 보자  (0) 2023.07.19
[Express] Express의 미들웨어 Connect  (0) 2023.07.19
[Express] Express.js 란  (0) 2023.07.19

관련글 더보기