通信、Status(バックエンドとの直接通信は初めて!)


バックエンドと通信するときにjsonファイルを使用します。

  • サーバは文字列データのみを処理するため、オブジェクトjsデータを文字列に変更して転送および受信する.
    (MDN) JSON
  • jsをサーバに転送する場合
  • JSON.stringfiy
    (MDN) JSON.stringfiy
  • サーバから受信しjsで使用する場合
    stackoverflow JSON.parse() Vs. .json()
  • AJAX->JSONを使用します.parse()->同期
    (MDN) JSON.parse(response)
  • Fetch->res.json()->非同期を使用してpromiseを返します
    (MDN) Response.json()
  • バックエンドで作成されたパーソナルサーバとの通信


    バックエンド開発者が作成したパーソナルコンピュータ上のサーバに接続するには、今日チェックする必要がある部分は次のとおりです.
  • は同一WiFi(IPアドレスは同一でなければならない)
  • である.
  • ポート番号
  • endpoint
  • Status


    (MDN)HTTP状態コード
    200 OK
    リクエストが成功しました.
  • ログイン->トークンが正常にログインして受信された場合
  • 201 Created
    リクエストが成功し、新しいリソースが生成されました.この応答は、通常、POST要求またはいくつかのPUT要求の後に現れる.
  • 会員加入->会員加入成功時
  • 400 Bad Request
    この応答は、構文エラーのため、サーバがリクエストを理解できないことを示します.
  • 会員入学試験->キエラー-必要な価格がなければ
    (未登録の鍵がある場合は無視して保持する)
  • 401 Unauthorized
    HTTP規格は「無許可(無許可)」を明示しているが、これは「無許可」を意味する.要求に応答するには、クライアントが自分の認証を行う必要があります.
  • ユーザーの登録->重複したIDであり、そのIDとして登録できません
  • ログイン->IDは正しいがパスワードが正しくない場合は
  • 404 Not Found
    サーバに要求されたリソースが見つかりません.ブラウザは未知のURLを表します.
  • ログイン時に登録されていないアイデンティティは
  • である.
    500 Internal Server Error
    サーバはどのように処理するか分かりません.
  • 未定義エラー、
  • と表示
    今日発生した他のエラーコード
    net::err_connection_refused
  • バックエンドでmysqlデータベースが実行されていません

    今日のコード


    ログイン

      const [form, setForm] = useState({ email: '', password: '' });
    
      fetch('http://10.58.5.37:8000/users/signin', {
          method: 'POST',
          body: JSON.stringify(form),
        })
          .then(res => {
            const { status } = res;
            if (status === 401) {
              alert('비밀번호를 확인해주세요!');
            }
            if (status === 404) {
              alert('등록된 사용자가 아닙니다.');
            }
            return res.json();
          })
          .then(res => {
            if (!!res.token) {
              setToken(token);
              alert(`로그인 되었습니다.\n${email}님 좋은 하루되세요 :)`);
              navigate('/main-kim');
            }
          })
          .catch(e => console.log(e));

    会員収入

      const [form, setForm] = useState({ email: '', password: '' });
    
      fetch('http://10.58.5.37:8000/users/signup', {
          method: 'POST',
          body: JSON.stringify(form),
        })
          .then(res => {
            const { status } = res;
            if (status === 201) {
              alert('회원가입 되셨습니다! 축하드립니다!');
            }
        	if(status === 401){
              alert('비밀번호를 확인해주세요!');
            }
          })
          .catch(e => console.log(e));

    今日悩んで知った


  • 次のコード作成時に、バックエンドで送信されるstatusではなくメッセージでブランチを処理しようとします.これにより、より詳細な四半期処理が可能になります.

  • スイッチドアで処理しなければなりません!

  • フロンイートダンでも会員加入時には、身分やパスワードの有効性を診断したり、バックグラウンドでも診断したりしていますが、これは重複しているように見えますし、1つの部分だけで行うことができますが、これは例外ではない部分なので、再確認のために2回した方がいいと思います.

  • これはとても面白い歴史的な日で、初めてバックグラウンドで自分で作成したサーバーと通信して、バックエンドから通信を受信して、スクリーンに表示されます!今日はstatusの状態をたくさん知りましたこれは喜ばしい一日でした:)

  • 勉強すればするほど、初期計画の段階が重要だと感じます.大きな絵を描いて、全体の方向と前列、後列を一度一緒に話して、最大限に合わせようと思ってから始めます.このようにしてこそ、すべての符号化がより効率的になります.また、進行中もコミュニケーションを続けてこそ、格差が広がる不吉なことはありません!