0610 서버 데이터 전송 방법에 따라 구현하기

2021. 6. 10. 15:21Node.js

프로토콜 문서

 

//app.js

const express = require('express');
const userRouter = require('./routes/users');
const app = express();
const port =3000;

app.use(express.json());
app.use('/users',userRouter);

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

app.listen(port,()=>{
    console.log(`server is running at ${port}port...`)
});
//users.js


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

const router = express.Router();

let users = [];


router.get("/all", (req, res, next) => {
    console.log(req.body);
    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);
    console.log(users);
    console.log(req.params);
    console.log(req.body)
    let result = {
      status: 200
    };
  //post 방식으로 유저의 데이터를 받아온다.
  //이때 uuid가 새로 생성된다.
    res.send(result);
});


router.post("/auth", (req, res, next) => {
    const userInfo = req.body;
    let user = users.find((x)=>x.id===userInfo['id']);
//req.body에서 POST 된 유저의 인포를 가져와
//'id'를 찾아서 가져온다.
    let result = {
         status:200,
         //만일 DB내에 id가 있으면 return 200
     };

    if(user===undefined){
        result.status=500;
        //없으면 return 500
    };

    res.send(result);
});


router.delete("/", (req, res) => {
    const userInfo = req.body;
    let user = users.find((x)=>x.id===userInfo['id']);

    let result = {
        status:200,
    }
    if(user===undefined){
        result.status =500;
        //DB 내에 유저 id가 없으면 return 500
    }
    else {
        delete user;
        return res.send(JSON.stringify(users));
        //DB 내에 유저 id가 있으면 해당 유저를 삭제
    }
    res.send(result);
});


router.patch("/", (req, res) => {
    const userInfo = req.body;
    let user = users.find((x)=>x.id===userInfo['id']);

    let result = {
        status:200,
    }
  
    if(user===undefined){
        result.status=500;
    }
    else{
        result.status=200;
        user['nickname']=userInfo['nickname'];
        //DB에 있던 유저의 닉네임에 DB로 들어온 닉네임을 넣어준다.
        console.log(userInfo['nickname']);
    }
    res.send(result);
});

module.exports = router;

POST /users

 

POST users/auth

 

DELETE /user

 

PATCH /users 닉네임을 변경 후 해당 id로 검색해보면 변경 되어있는 것을 볼 수 있다.

 

'Node.js' 카테고리의 다른 글

0615 express서버와 mysql 커넥션  (0) 2021.06.15
0611 express 서버 이어서  (0) 2021.06.11
0609 express 서버 열기  (0) 2021.06.09
0608 npm express 웹 서버 만들기  (0) 2021.06.08
0608 REST API와 라우팅  (0) 2021.06.04