Node/수업내용

Node 수업내용 21.06.10 Node.js - 회원관리

HappyFrog 2021. 6. 10. 14:01

사용할 폴더를 하나 만든다.

 

그리고 cmd창에서 cd를 이용하여 해당폴더로 경로를 이동시킨 뒤 해당 익스프레스를 이용하자.

 

 

오늘 할 일

회원등록

닉네임, 이메일, 패스워드

 

서벌 할 일

id생성

객체로 만들어서 배열에 추가

 

응답시 status 200

오류시 500

 

서순이 중요하다 왼쪽 처럼하면 users의 라우터가 정상적으로 작동을 하여도 내용을 불러올 수가 없다.

왼쪽처럼 했다가 ID값을 불러올 수 없다는 에러가 계속 났다.

따라서 오른쪽 사진처럼 서순을 바꿔주어야 users를 제대로 불러올 수 있다.

 

const express = require("express");
const router = express.Router();
const { v4: uuidv4 } = require("uuid");

let users = [];

router.get("/all", (req, res, next) => {
  res.end("모든 회원 검색");
});

router.get("/:id", (req, res, next) => {
  const id = req.params.id;
  let user = users.find((x) => x.id === id);

  let result = {
    status: 200,
    user,
  };
  if (user === undefined) {
    result.status = 500;
  }
  res.send(result);
});

router.post("/", (req, res, next) => {
  let user = req.body;
  const uuid = uuidv4();
  user.id = uuid;
  users.push(user);

  let result = {
    status: 200,
    user,
  };
  user.status = result.status;
  res.send(result);
});

router.post("/auth", (req, res, next) => {
  const id = req.body.id;
  let result = {
    status: 200,
    id,
  };

  let user = users.find((x) => x.id === id);

  if (user === undefined) {
    result.status = 500;
  }

  res.send(result);
});

router.delete("/", (req, res) => {
  let id = req.body.id;
  let user = users.find((x) => x.id === id);
  console.log("userID : " + user.id + ", status : " + user.status);
  delete user.id;

  let result = JSON.stringify(user);
  res.send(result);
});

router.patch("/", (req, res) => {
  let id = req.body.id;
  let changingId = req.body.changingId;
  console.log(changingId.stringify);
  let user = users.find((x) => x.id === id);

  user["id"] = changingId;
  console.log(JSON.stringify(user));
  res.end(JSON.stringify(user));
});

module.exports = router;

* 핵심은 배열.find를 사용하여 해당 유저를 찾아내는 점과 req의 body에서 원하는 속성을 불러오는데에 있다.

patch부분에서 id값을 바꿔보고 body의 내용으로 id의 내용이 바뀔까 싶어서 시도해보았지만 해당 속성의 이름까지 바뀌어버린 모습이다.

ㄴ user['id']같이 속성의 'Key'를 정의해주고 그의 값으로 받아온 body의 내용을 할당해주면 잘 바뀐다.