: 파일 처리와 관련된 작업을 하는 모듈로, 보통 FileSystem을 줄여서 fs 모듈이라고 줄여 부른다(fs모듈은 파일을 읽고, 저장하는등 파일과 관련된 모듈들을 내장하고 있다.)
<동기적 읽기 방식과 비동기적 읽기 방식>
fs.readFile(filename, [options], callback) : filename의 파일을 [options]의 방식으로 읽은 후 callback으로 전달된 함수를 호출합니다. (비동기적)
fs.readFileSync(filename, [options]) : filename의 파일을 [options]의 방식으로 읽은 후 문자열을 반환합니다.(동기적)
fs.writeFile(filename, data, [options], callback) : filename의 파일에 [options]의 방식으로 data 내용을 쓴 후 callback 함수를 호출합니다.(비동기적)
fs.writeFileSync(filename, data, [options]) : filename의 파일에 [options]의 방식으로 data 내용을 씁니다.(동기적)
//main.js
var fs = require('fs');
// 비동기적 읽기
fs.readFile('text.txt', 'utf8', function(err, data) {
console.log('비동기적 읽기 ' + data);
});
// 동기적 읽기
var text = fs.readFileSync('text.txt', 'utf8');
console.log('동기적 읽기 ' + text);
// 비동기적 읽기가 먼저 실행됨에도 불구하고 console에는 동기적 읽기가 먼저 출력됨.
// 쓰기도 마찬가지로, 아래 코드를 실행하면 '동기적 파일 쓰기 완료'가 먼저 출력될 것이다.
// main.js
var fs = require('fs');
// 파일 읽기(동기적)
try {
var data = fs.readFileSync('notexist.txt', 'utf8'); // 파일이 없는데 읽으려 함
console.log(data);
} catch (err) {
console.log(err);
}
// 동기적 방식에서는 자바스크립트에서 예외처리를 할 때 일반적으로 써주는 방식인 try~catch 구문으로 처리
// main.js
var fs = require('fs');
// 파일 읽기
fs.readFile('notexist.txt', 'utf8', function(err, data) { // 존재하지 않는 파일 읽기
if (err) {
console.log(err); // 읽기 실패
}
else {
console.log(data); // 읽기 성공
}
});
// 비동기적 방식에서는 예외가 발생하면 callback 함수의 매개변수 err에 전달되므로, 따로 try~catch 구문을 사용할 필요가 없음
: JavaScript에서 서버로 네트워크 요청을 보내고 응답을 받을 수 있도록 해주는 매서드이다.
fetch property
- method (통신 방식) : GET(default) / POST 등이 있음.
1) GET : 어떠한 정보를 백엔드 서버에서 가져올 때 이용
2) POST : 어떠한 정보를 백엔드 서버에 보낼 때 이용
3) DELETE : 단어 그대로 삭제할 때 사용- headers : API 응답에 대한 헤더 정보를 담음, Http Header와 대응
- body : 전달하고자 하는 응답 내용. 백엔드 서버와 통신할 때, 객체를 이용하여 통신하므로 객체 타입으로 작성
Json 객체 이용 -> .strignify() 메서드를 이용해서 자바스크립트 값 or 객체를 JSON 문자열로 반환
fetch(url)
.then(response => response.json()) // 자체적으로 json() 메소드가 있어, 응답을 JSON 형태로 변환시켜서 다음 Promise로 전달합니다
.then(json => console.log(json)) // 콘솔에 json을 출력합니다
.catch(error => console.log(error)); // 에러가 발생한 경우, 에러를 띄웁니다