안뇽하세요~ 크리에이트메이커 입니다.
오늘은 제가 외주를 하면서 제안이 들어온 기능을 만들다 배운 js 소스코드를 공유해 볼까해서 글을 적었습니다.
일단 제안들어온 기능은 메모장에 정보를 입력해서 로그인 혹은 접속을 할 수 있게 해달라는 기능입니다.
언어는 js(자바스크립트)구요. 당연 제가 아는 지식도 있고, 더좋은 방법을 구하기 위해 구글을 뒤졌씁니다.
그 결과 이전에 제가썻던 방법보다는 간단하게 쓸수 있는 소스코드를 발견 했구요.
콜백을 해야 하는 코드 이므로, 순서가 있고 함수처리가 잘된 간단한 코드에 넣으면 편하게 쓸수 있을거 같아 올립니다~
자 코드 투척
function ReadInfoTXT(){
var fs = require('fs');
var fileContents;
fs.readFile('info.txt', function (err, data) {
if (err) throw err;
fileContents = data;
// ...
console.log(fileContents.toString('utf-8')); //중요한부분1
callbackfunction(fileContents); //중요한부분 2
});
}
function callbackfunction(){
블라블라
}
대부분 아는 내용이라 생각합니다. 여기서 중요한 부분은 readFile은 비동기식 함수이기 때문에, 저 함수 안에서 따로 돕니다.
그래서 저기 중요한부분1 에 console.log를 readFile 밖에 적으면, undefined 가 표출이 됩니다.
즉, 해당 함수로 정보를 읽어왔을때, 그 정보를 이용하려면 콜백 함수가 필요합니다.
콜백함수라 해도 뭐 정해진 틀은 없구요. 그냥 개인별로 제 코드 형식에 맞추어 코드를 짜면 됩니다.
readFile과 그 밖의 선언된 함수나 변수는 따로 돌고 있다고 생각하시면됩니다. 그렇기 때문에 readFile의 정보를 이용하기 위해서는 콜백으로 readFile안에 함수를 선언하거나 readFile안에 모든 코드를 짜시면 됩니다.
가끔 readFile함수 밖에서 console.log(fileContents); 를 했는데 undefined가 나온다는 분들이 있어서 적어봤습니다.
안좋은예)
function ReadInfoTXT(){
var fs = require('fs');
var fileContents;
fs.readFile('info.txt', function (err, data) {
if (err) throw err;
fileContents = data;
});
console.log(fileContents);
}
좋은예)
function ReadInfoTXT(){
var fs = require('fs');
var fileContents;
fs.readFile('info.txt', function (err, data) {
if (err) throw err;
fileContents = data;
console.log(fileContents);
});
}
그럼 안뇽~
'IT기술(코딩)' 카테고리의 다른 글
html a태그 download 경로 지정 못하나요? (0) | 2023.01.26 |
---|---|
셀리니움 element 없다고 할때, 클릭안될때 (0) | 2022.09.28 |
mysql 서비스 시작 실행 갑자기 안될때, 10061에러, 1067에러 error (0) | 2022.08.23 |
smtp 501 5.5.4 IP ADDRESS: EHLOerror how solve this error smtp 메일 송신 501 에러 해결 방법. (0) | 2022.08.15 |
sql 트리거 쿼리문 에러 syntax 해결 방법 중 하나 (0) | 2022.08.09 |