1

プロジェクトでログイン/登録モジュールを実行しようとしています。これが私のログイン機能です。すべてを検証する 1 つの関数が必要なので、多くの "if" ステートメントを使用する必要はありません。私は純粋な機能をやろうとしていましたが、それを行う方法がまったくわかりません。誰かが私を助けることができますか?

const loginUser = async (req, res, next) => {
  const { password, email } = req.body;

  if (!email) {
    return res.status(400).json({
      message: "Error: Email cannot be blank.",
    });
  }
  if (!password) {
    return res.status(400).json({
      message: "Error: Password cannot be blank.",
    });
  }

  try {
    const user = await User.findOne({ email: email });

    if (!user)
      return res.status(400).json({
        message: "Invalid user",
      });

    if (!validPassword(password, user.password))
      return res.status(400).json({
        message: "Invalid password",
      });

    const { name, likedArr, _id } = user;
    const token = crypto.randomBytes(32).toString("hex");
    const userSession = new UserSession({ userId: _id, token });
    await userSession.save();
    return res.status(200).json({
      message: "Valid login",
      token: token,
      user: {
        name,
        likedArr,
        userId: _id,
      },
    });
  } catch (err) {
    next(err);
  }
};

4

1 に答える 1