ログオン原価入取関数
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('아이디와 비밀번호를 확인하세요');
}
});
};
≪同期化|Synchronize|oem_src≫:次の行に進むには、コードごとに1行ずつ実行する必要があります.非同期:順次実行(1行1行のコードを待たない)
fetch関数は非同期です.
なぜ?>>HTTP通信は、他の論理よりも長い時間を要するため非同期である.
通信が完了するまで待つと、UXはめちゃくちゃになります.
JSON.stringify()
という方法で既存のJavaScriptオブジェクトからJSON Stringにフォーマットを変換する.JSではPromiseオブジェクトは非同期を扱う構文である.
したがって、fetch関数はPromiseオブジェクトを返します.
次に()メソッドはPromiseオブジェクトに使用できるメソッドです
応答もJSON形式で現れるので、jsオブジェクト形式で<-then()1を返さなければなりません.
GET vs POST
body:いいえ.
DBにデータを渡す必要がないからです.
データベースにデータを追加、変更、または削除する場合.
Fetch(GET)
説明:プレイヤー情報を取得します.
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}님 환영합니다`);
}})
Fetch(POST)
*呼び出す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を送信します.
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を送信します.Reference
この問題について(ログオン原価入取関数), 我々は、より多くの情報をここで見つけました https://velog.io/@ksung1889/로그인-회원가입テキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol