POST를 보내기 위한 POST MAN!

데브코스

목록 보기
28/131

데이터를 보내는 방법들인건데, 지금까지는 GET를 사용해서 URL로 데이터를 보냈어.

근데 만약에 회원가입을 하기 위해 id,password, name ,email등을 적어서 이 정보들을 사이트에 보낼건데, 어떻게 보낼거야??

get처럼 url로 보내면 내 id,password, name ,email가 전부 노출된단 말이지. 이것들은 내 개인정보인데,
url에 저 정보들이 보이면 안되잖아!!

당연히 이런 중요한 정보들은 숨겨서 보내야하잖아? 그래서 이 정보들을 어떻게 숨겨서 보내는데??
바로 body를 통해서 보낼꺼야!html에 head랑 body있는거 알지? 그 body에 보낼거야.

그럼 웹브라우저는 저 중요 정보들이 숨겨져서 들어와야한다는 것을 미리 알고 있겠지?

정확히는 나의 API가 POST로 요청을 한다는 건 Body라는 공간에 데이터가 숨겨져서 들어온다는 것을 이미 알고 있는거야.

그럼 POST입장에서는 너 데이터를 Body에 숨겨져 보낼거잖아. 라고 그 값을 받을 준비를 하고 있어.


Postman으로 POST 요청 테스트하기

자, 이제 POST가 body에 데이터를 숨겨서 보낸다는 걸 알았지? 그럼 이걸 실제로 테스트해보자!

Postman이 뭐야?

간단한거야. API 테스트 도구야.

브라우저로는 GET만 쉽게 테스트할 수 있잖아?

POST는 body에 데이터 넣어서 보내야 하는데 브라우저로는 귀찮으니까 Postman 쓰는 거야.

자 그럼 브라우저에 postman 쳐서 다운 받으면 되고, 워크스페이스를 하나 만들어서 이제 사용하면 돼!

요런 느낌이야


POST MAN에서 POST로 방금 했던 주소 그대로 적어서 POST로 주소를 받기로 한 정보를 보여주는 모오습

바로 위에 있는 것처럼 해줄려면

아래 있는 코드처럼 작성해줘야 저렇게 보이게 할 수 있어

const express = require("express");
const app = express();

const port = 3000;

app.get("/", function (req, res) {
  res.send("hello world");
});

app.use(express.json());

app.post("/test", function (req, res) {
  // BODY에 숨겨져서 들어온 데이터를 화면에 뿌려줘볼까?

  console.log(req.body.message);
  res.send(req.body.message);
  res.json(req.body);
});

app.listen(port, function () {
  console.log(`Example app listening on port ${port}`);
});

//express 모듈 셋팅

const express = require("express");
const app = express();

//서버 셋팅 : 포트 넘버(번호) 3000으로 셋팅
app.listen(3000);

let youtuber1 = {
  channelTitle: "십오야",
  sub: "713만명",
  videoNum: "1000개",
};

let youtuber2 = {
  channelTitle: "침착맨",
  sub: "300만명",
  videoNum: "8000개",
};

let db = new Map();
db.set(1, youtuber1);
db.set(2, youtuber2);

// GET + "/"  및  REST API 설계  -> 파라미터는 문자열로 들어오기 때문에, 숫자열로 바꿔줘야해 id를
app.get("/youtuber/:id", function (req, res) {
  let { id } = req.params;
  id = parseInt(id);

  const youtuber = db.get(id);

  if (youtuber == undefined) {
    res.json({
      message: "유튜버 정보를 찾을 수 없어",
    });
  } else {
    res.json(youtuber);
  }
});

app.use(express.json()); //http 외 모듈인 '미들웨어':json 설정
app.post("/youtuber/", function (req, res) {
  // BODY에 숨겨져서 들어온 데이터를 화면에 뿌려줘볼까?

  console.log(req.body);
  //이제 등록을 해줘야 하는데 Map(db)에 저장(put) 해주셔야 함.
  db.set(4, req.body);
  res.json({
    message: `${db.get(4).channelTitle} 님 유튜버 생활을 응원합니다!`,
  });
});

코드 길다고 안읽지말고 다 읽어. 그래야 실력이 는다

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

0개의 댓글