Unity/서버

0610 _ 서버

minquu 2021. 6. 10. 14:32
반응형

어제 한거 복습 하기

 

----

 

폴더 만들기

폴더로 들어가서

 

필요한 것들 설치하기 

npm i express uuid nodemon

app.js 만들기

 

 

 

기본적인 틀 짜기

 

 

확장에서 

 

Prettier  - 줄 자동으로 바꿔주는

 

 

 

설정에서  

 

 

 

 

체크하면 저장하면 줄이 잘 맞춰진다.

 

----

노드몬 start 아니고 app으로 

 

프로토콜 문서보고 만들기 시험으로 

 

 

----

그다음 라우터를 만들어야한다.

 

 

routes/users.js 만들고 라우터를 만들것임

 

테스트 코드 작성

 

라우터 모듈화

 

--->

 

app.js 에서 라우터를 붙여야한다. 

 

postman에서 테스트 

localhost:3000/users

get post

 

 

----

const express = require("express");
const router = express.Router();

router.get("/:id", (req, res, next) => {
  const id = req.params.id;
  if (id === "all") {
    console.log("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) => {
  res.end("회원 탈퇴");
});

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

module.exports = router;

라우터 만들었음

 

 

postman 에서 테스트 

 

 

 

 

Get post delete  등등으로 받으면 / 루트 접근 

 

----

 

 

post로 정보값 받기

 

 

 

 

------

 

router.post("/auth", (req, res, next) => {
    let userauth = req.body;
    let user = users.find(x => x.id === userauth.id);
    let result = {
        status : 200,
    };
    if (user === undefined) {
        result.status = 500;
      }
    else if(userauth.id === user.id){
        result.status = 200;
    }
    res.send(result);
});

 

    let userauth = req.body;

post로 받은 값을 userauth 에 넣어준다 .

 

 

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

user 에 users 배열에 있는 id 값과 body에서 받은 id 값을 비교해서 있으면 user에 그 객체를 넣어준다.

 

 

    let result = {
        status : 200,
    };

 

결과에 기본 200을 찍어주고

 

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

만약 user 가 비워 있다면 서로 값이 다르 것 이기 때문에 500를 찍어준다.

 

    else if(userauth.id === user.id){
        result.status = 200;
    }

 

아니면 두 개가 id가 같으면 찾았기 때문에 200을 찍어준다.

 

    res.send(result);

res로 결과를 보내준다.

 

---

 

삭제

router.delete("/", (req, res) => {
    let userdel = req.body;
    let usereinfo = users.find(x => x.id === userdel.id);
    let result = {
        status : 500,
    };
    
    if (usereinfo === undefined) {
        result.status = 500;
      }
      else if(userdel.id === usereinfo.id){
        users.pop(usereinfo);
        result.status = 200;
    }
    console.log('삭제 후 배열 : ' + users);
    res.send(result);
});

 

 

위와 비슷하지만 pop 를 써서 지워주는 부분이 있다.

 

 

------

 

수정하기

 

router.patch("/", (req, res) => {
    let useredit = req.body;
    let usereinfo = users.find(x => x.id === useredit.id);
    let result = {
        status : 500,
    };
    if (usereinfo === undefined) {
        result.status = 500;
      }
      else if(useredit.id === usereinfo.id){
        usereinfo.name = useredit.name;
        result.status = 200;
    } 
    console.log('수정 후 이름 : ' + usereinfo.name);
  res.send(result);
});

name를 바꿔준다.

 

--

 

 

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);
    console.log(users);
    let result = {
        status : 200,
    };

    res.send(result);
});

router.post("/auth", (req, res, next) => {
    let userauth = req.body;
    let user = users.find(x => x.id === userauth.id);
    let result = {
        status : 500,
    };
    if (user === undefined) {
        result.status = 500;
      }
    else if(userauth.id === user.id){
        result.status = 200;
    }
    res.send(result);
});

router.delete("/", (req, res) => {
    let userdel = req.body;
    let usereinfo = users.find(x => x.id === userdel.id);
    let result = {
        status : 500,
    };
    
    if (usereinfo === undefined) {
        result.status = 500;
      }
      else if(userdel.id === usereinfo.id){
        users.pop(usereinfo);
        result.status = 200;
    }
    console.log('삭제 후 배열 : ' + users);
    res.send(result);
});

router.patch("/", (req, res) => {
    let useredit = req.body;
    let usereinfo = users.find(x => x.id === useredit.id);
    let result = {
        status : 500,
    };
    if (usereinfo === undefined) {
        result.status = 500;
      }
      else if(useredit.id === usereinfo.id){
        usereinfo.name = useredit.name;
        result.status = 200;
    } 
    console.log('수정 후 이름 : ' + usereinfo.name);
  res.send(result);
});

module.exports = router;

 

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

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


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

app.listen(port, () => {

})

 

 

 

 

 

 

 

 

반응형

'Unity > 서버' 카테고리의 다른 글

0615_서버 (DB_2)  (0) 2021.06.15
0611 _ 서버 (DB_1)  (0) 2021.06.11
0609 _ 서버  (0) 2021.06.09
0608_ 서버  (0) 2021.06.08
0604_서버 4  (0) 2021.06.04