회원 API 로그인까지와 예외처리! & 채널 API설계

데브코스

목록 보기
39/131
post-thumbnail
//express 모듈 세팅

const express = require("express");
const app = express();
app.listen(7777);
app.use(express.json()); //json형태로 된 body를 파싱하는 모듈
//http 외 모듈을 하나 사용할건데, 그게 json형태로 된 body를 파싱하는 모듈을 사용할거야.

let db = new Map();
var id = 1;
//로그인
app.post("/login", function (req, res) {
  //id가 디비에 저장된 회원인지 확인
  console.log(req.body);
  const { userId, password } = req.body;

  var loginUser = {}; //{}만 해도 객체가 됨

  db.forEach(function (user, id) {
    if (user.userId === userId) {
      loginUser = user;
    }
  });

  if (isExist(loginUser)) {
    console.log("로그인 성공");
    if (loginUser.password === password) {
      console.log("비밀번호 일치");
    } else {
      console.log("비밀번호 불일치");
    }
  } else {
    console.log("존재하지 않는 계정입니다.");
  }
});

function isExist(loginUser) {
  if (Object.keys(loginUser).length) {
    return true;
  } else {
    return false;
  }
}

// 회원가입

app.post("/join", function (req, res) {
  console.log(req.body);

  if (req.body == {}) {
    res.status(400).json({
      message: `회원가입에 실패하였습니다. 다시 시도해주세요.`,
    });
  } else {
    db.set(id++, req.body);
    res.status(201).json({
      message: `${db.get(id - 1).name}님 회원가입을 축하드립니다.`,
    });
  }
});

// 회원 개별 조회
app
  .route("users/:id")
  .get(function (req, res) {
    let { id } = req.params;
    /*{id} 이게 뭐냐면! 너 id값 있던데, 그 id값 바로 꺼내서 id라는변수에 바로 담아줘. 라는 뜻이야*/
    id = parseInt(id);
    const user = db.get(id);
    if (user == undefined) {
      res.status(404).json({
        message: "회원 정보가 없습니다.",
      });
    } else {
      res.status(200).json({
        userId: user.userId,
        name: user.name,
      });
    }
  })

  //회원 개별 탈퇴

  .delete(function (req, res) {
    let { id } = req.params;
    /*{id} 이게 뭐냐면! 너 id값 있던데, 그 id값 바로 꺼내서 id라는변수에 바로 담아줘. 라는 뜻이야*/
    id = parseInt(id);

    const user = db.get(id);
    if (user == undefined) {
      res.status(404).json({
        message: "회원 정보가 없습니다.",
      });
    } else {
      db.delete(id);

      res.status(200).json({
        message: `${user.name}님 다음에 또 뵙겠습니다!`,
      });
    }
  });

이런식으로 일단 코드를 짰고,
이제 회원 API 로그인, 회원가입을 할 수 있도록 해줬으니
그리고 이제 채널 API를 설계해보도록 하자.


profile
Dive Head First | Work Super Hard | Attract Great People

0개의 댓글