2021、07/07水曜日

8975 ワード

TIL


今日やったこと

  • 休憩
  • 登録コスト入口構造と機能完備
  • leetcord
  • Divide Two Integers. (medium)
  • 今日は


    作成中のログインコストエントリ構造と機能が作成されました.

    それぞれ異なる機能を記述しています.
    import phash from "./components/passwordHash";
    import rsalt from "./components/randomSalt";
    import mkToken from "./components/makeToken";
    import dbuser from "./dbcontroller/user/index";
    
    			//중간 생략 //
    
    router.post("/signin", dbuser.get(), phash, mkToken, (req, res) => {
      if (res.locals.password === res.locals.password) {
        res.cookie(`refreshToken`, res.locals.refreshToken, {
          maxAge: 24 * 6 * 60 * 10000,
          sameSite: "none",
          httpOnly: true,
          secure: true,
        });
        res.cookie(`iskakao`, false, {
          maxAge: 24 * 6 * 60 * 10000,
          sameSite: "none",
          httpOnly: true,
          secure: true,
        });
    
        res.status(200).json({
          message: "로그인 되었습니다.",
          accessToken: res.locals.accessToken,
        });
      } else {
        res.status(403).json({ message: "잘못된 비밀번호" });
      }
    });
    
    router.post(
      "/signup",
      upload.single("userImage"),
      rsalt,
      phash,
      dbuser.exist(false),
      dbuser.insert,
      (req, res) => {
        res.status(200).send("signup");
      }
    );
    図示のように、個別機能はミドルウェアとして順次行われ、個別プロセス毎に対応する機能のみが行われるように構成されている.全体的に、構造は複雑で複雑になっているようです.もちろん、短い構造でそうする必要はありませんが、この時間構造自体は実行部分をすべて打ち出す構造なので、複数の段階を経る必要がある場合は、コールバックのように内部で結果の結果が得られなければならないので、この欠点を補うために、このように裁断しました.
    もちろん,当時はfromisのthenとcatchを用いて順序付けを行っていたが,この場合,エラーの生成によりcatchが集中するため,問題のどの部分が問題であるかを特定することが難しく,単独のエラー処理方式を採用することが困難であったため,ミドルウェア方式で行った.