goToMain = () => {
fetch(`${BASE_URL}/users/signin`, { // 1번째 인자 : api주소
method: 'POST',
body: JSON.stringify({ //http통신을 할땐 JSON형식으로 통신 한다라고 규약돼있음. js객체를 JSON형식으로 바꿔달라라는 요청.
email: this.state.email,
password: this.state.password,
}),
})
.then(res => res.json()) //JSON형식으로 통신했긷때문에 응답도 JSON으로 들어옴.그것을 js 객체형식으로 다시 바꿔주는 코드
.then(res => { // js객체형식으로 바꾼것을 가지고 요리를 시작
if (res.token) {
localStorage.setItem('token', res.token);
alert('로그인 되었습니다.');
this.props.history.push('/');
} else {
alert('아이디와 비밀번호를 확인하세요');
}
});
};
동기방식: 순차적으로 진행(한줄한줄 코드가 실행되야 다음줄로 진행됨)
비동기방식: 비순차적으로 진행( 한줄한줄 코드를 기다려주지 않음)
JSON.stringify()
라는 메서드를 활용해서 포맷을 기존의 javascript object에서 JSON String으로 변환해줍니다.js객체형식된것을 이용하여 그다음 로직들 구현<- then() 2번째
DB에서 데이터를 받아올때.
body: 가 필요없음.
DB에 데이터를 전달해줄 필요가 없기 때문.
설명: 유저 정보를 가져온다.
base url: https://api.google.com
endpoint: /user/3
method: get
응답형태:
{
"success": boolean,
"user": {
"name": string,
"batch": number
}
}
fetch('https://api.google.com/user/3')
.then(res => res.json())
.then(data => {
if(res.success){
console.log(`${res.user.name}님 환영합니다`);
}})
*호출해야할 api가 get이나 post 뭐인지는 백엔드 개발자에게 물어봐야함.
```base url: https://api.google.com
endpoint: /user
method: post
요청 body:
{
"name": string,
"batch": number
}
응답 body:
{
"success": boolean
}
fetch('https://api.google.com/user',{
method: post,
body : JSON.stringify({
name: "steve",
batch: 1
})
})
.then(res => res.json())
.then(data => {
if(res.success){
alert('저장 완료');
}
})
2번째 인자로 method와 body보내준다.