안녕하세요~ IT깡패's입니다~ㅎㅎㅎ
요즘은 node.js에 대해서 공부중인데요~
node.js에서 fs모듈을 사용하여 파일 입출력을 사용해보도록 하겠습니다~!
이것으로 파일 입출력 읽기/쓰기와 동기/비동기 방식을 실행할 수 있습니다.
파일쓰기
일단은,, 파일쓰기의 동기/비동기 방식을 사용하는 소스코드를 적어보도록 하겠습니다~ㅎㅎ
-index.js
/**
* http://usejsdoc.org/
*/
var server = require("./server");
var server2 = require("./server2");
-server.js
/**
* http://usejsdoc.org/
*/
/*파일쓰기 동기 방식*/
var fs = require("fs");
var data = "Hello, Jsnode! Sync~!!";
var comp = "COMPLETE FILE WRITE!";
try{
fs.writeFileSync("./syncTest.txt",data,"utf8");
console.log(comp);
}catch(e){
console.log(e);
}
-server2.js
/**
* http://usejsdoc.org/
*/
/*파일 읽기 비동기 방식*/
var fs = require("fs");
var data = "Hello, Jsnode! ASync!!!!!";
var comp = "COMPLETE FILE WRITE NOW!";
fs.writeFile("./asyncTest.txt",data,"utf8",function(err){
console.log(comp);
if(err){
console.log(err);
}
});
-console 결과창
이 두가지 방식은 node.js에서 파일 입출력으로 사용하고 예외처리 부분은 꼭 들어가야 한다고 생각하시면
되겠습니다~ㅎㅎ
fs.writeFileSync("./syncTest.txt",data,"utf8");
fs.writeFile("./asyncTest.txt",data,"utf8",function(err){
이것들이 요기에 사용하는 fs모듈 함수로 특히 비동기방식을 보면 좀 더 단순하게 리팩토링할 필요가 있다고 생각이
들 수 있습니다.
쬐금 더 단순하게 정리해보면요~~ 바로 callback함수 자체를 변수를 담아버린다고 합니다~
- server2.js
/**
* http://usejsdoc.org/
*/
/*파일 읽기 비동기 방식*/
var fs = require("fs");
var data = "Hello, Jsnode! ASync!!!!!";
var comp = "COMPLETE FILE WRITE NOW!";
fs.writeFile("./asyncTest.txt",data,"utf8",function(err){
console.log(comp);
if(err){
console.log(err);
}
});
파일 쓰기를 해보았으니 이제는 파일 읽기를 해봐야겠죠잉~ㅎㅎ
파일 읽기도 쓰기와 마찬가지로 동기/비동기 방식으로 이루어져 있습니다.
파일읽기
-server.js
/**
/**
* http://usejsdoc.org/
*/
/*파일 읽기 동기 방식*/
var fs = require("fs");
try {
var fd = fs.readFileSync("./syncTest.txt","utf8");
console.log(fd);
}catch (e) {
console.log(e);
}
-server2.js
/**
/**
* http://usejsdoc.org/
*/
/*파일 읽기 동기 방식*/
var fs = require("fs");
try {
var fd = fs.readFileSync("./syncTest.txt","utf8");
console.log(fd);
}catch (e) {
console.log(e);
}
- console 결과창
Hello, Jsnode! Sync~!!
Hello, Jsnode! ASync!!!!!
이 결과는 아까 파일을 썻던 글을 읽는 과정을 확인하기 위해서 넣었습니다.
마지막으로 이것들의 차이는 직접 눈으로 확인하고 생각해보시길 바랍니다~!!ㅎㅎㅎ
- 참고링크
node.js 파일시스템 - https://m.blog.naver.com/seilius/130182883352
'IT 관련,, > 중요문자 적어두기' 카테고리의 다른 글
[python/개발]파이썬이란 무엇인가?? (0) | 2020.03.21 |
---|---|
브라우저에서 창닫기(x창) 누르면 경고창 띄우기~ (0) | 2020.03.05 |
[node.js/개발] exports를 사용하여 외부 모듈을 불러와보자~!! (0) | 2019.10.27 |
[node.js/개발]http 모듈, 아파치를 이용해서 웹 띄우기~ (0) | 2019.09.21 |
[웹(앱)/Android]MVVM 패턴이란~ (0) | 2018.09.27 |