Node.js

[06.10] Router 제작

ljw4104 2021. 6. 10. 12:20
const express = require("express");
const router = express.Router();

router.get("/:id", (req, res, next) => {
  const id = req.params.id;
  if (id === "all") {
    next("route");
  } else res.end(`단일회원 검색 -> id: ${id}`);
});

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

router.post("/", (req, res, next) => {
  res.end("회원 등록");
});

router.post("/auth", (req, res, next) => {
  res.end("회원 인증");
});

router.delete("/", (req, res, next) => {
  res.end("회원 탈퇴");
});

router.patch("/", (req, res, next) => {
  res.end("회원 수정");
});

module.exports = router;
  • /all 로 접근시에 id에 막혀버리기에 id가 all이면 다음 router로 보내버리게 하였다.
  • 기본 틀만 제작
const express = require("express");
const usersRouter = require("./routes/users");
const app = express();
const port = 3000;

app.use(express.json());
app.use("/users", usersRouter);

app.get("/", (req, res) => {
  res.end("hello world~~~~~~");
});

app.listen(port, () => {});

결과 이미지

 

 

1. 회원등록

router.post("/", (req, res, next) => {
  let user = req.body;
  user["id"] = uuidv4();
  user["password"] = SHA256(user["password"]).toString();
  users.push(user);
  console.log(users);
  res.end("200");
});
  1. req.body로 json데이터를 받아오기
  2. user란 객체에 id 생성
  3. password를 SHA256를 암호화
  4. users배열에 user을 삽입
  5. 200을 보냄으로서 성공적으로 끝냄;

 

2. 회원검색

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);
});


const express = require("express");
let SHA256 = require("crypto-js/sha256");
const { v4: uuidv4 } = require("uuid");
const router = express.Router();

let users = []; //user의 정보를 저장하는 배열

router.get("/all", (req, res, next) => {
  res.send(users);
});

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;
  user["id"] = uuidv4();
  user["password"] = SHA256(user["password"]).toString();
  users.push(user);
  console.log(users);
  let result = {
    status: 200,
  };
  res.send(result);
});

router.post("/auth", (req, res, next) => {
  let afterValue = req.body;
  let user = users.find((x) => x.email === afterValue["email"]);

  let result = {
    status: 200,
  };

  const idx = users.indexOf(user);
  if (idx <= -1) {
    result.status = 500;
  }
  res.send(result);
});

router.delete("/", (req, res, next) => {
  let afterValue = req.body;
  let user = users.find((x) => x.email === afterValue["email"]);

  const idx = users.indexOf(user);
  if (idx > -1) {
    users.splice(idx, 1);
  }

  let result = {
    status: 200,
    users,
  };

  if (user[idx] === undefined) {
  } else {
    result.status = 500;
  }

  res.send(result);
});

router.patch("/", (req, res, next) => {
  let afterValue = req.body;
  let user = users.find((x) => x.email === afterValue["email"]);

  user["nickname"] = afterValue["nickname"];

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

module.exports = router;