오늘 수업 내용 📚
- API - POST를 이용하여 데이터 입력하기
- API - postman을 사용하자
- Invalid character in header content ['Host']
강사님이 작성한 코드를 그대로 작성하는 게 아닌 내 생각을 기반으로 하기 때문에 조금씩 다른 부분들이 존재했습니다.
일단 key값을 설정하는 방식이 달랐습니다.
db.set(key, value)
기존에 이 형태로 데이터를 입력을 했는데요. value는 req.body가 객체로 받사오니 그대로 입력을 하면 문제가 없었지만 key의 값은 특정 값을 받아올 수 없어서 그 부분을 해결하고자 했습니다.
key 형태가 1,2,3이었기 때문에 다음에 등록을 하게 되면 4 그다음은 5가 순차적으로 와야 한다고 생각을 했고, Map의 속성을 활용하여 Map의 size 즉 db.size를 이용하여 전체 데이터 값의 개수를 받아와 데이터에 하나가 추가가 되는 것이니 db.size + 1을 하면 되겠다 싶었습니다.
app.post("/youtuber", (req, res) => {
const youtuber = req.body;
console.log(db.size);
const newYoutuberId = db.size + 1;
db.set(newYoutuberId, youtuber);
//방법1. req.body의 값으로 채널명 받아오기
res.json({
message: `${youtuber.chennelTitle}님, 유투버 등록이 완료되었습니다.`
});
//방법2. db의 데이터를 불러와 채널명 받아오기
res.json({
message: `${
db.get(newYoutuberId).chennelTitle
}님, 유투버 등록이 완료되었습니다.`
});
});
하지만 강사님은 조금 다르게 접근하셨습니다.
key값이 하나씩 증가하는걸 javascript에서 하나씩 증가할 때 사용하는 ++를 이용하셨습니다.
이때 idx 변수설정을 처음엔 let으로 진행하셨는데 함수 안에서는 idx의 값이 달라 let을 var로 바꾸니 idx값이 잘 바뀌는 것도 확인을 했습니다. let과 const가 ES6라서 var 인 ES5보다 상위버전이라 문제가 없을 거라 생각했지만 var let const 등 다 사용이 되는 변수설정이니 상황에 맞게 이용할 수 있게 공부를 더 해야겠다 생각을 했습니다.
const db = new Map();
let idx = 1
db.set(idx++, 객체1) // idx 1->2
db.set(idx++, 객체2) // idx 2->3
db.set(idx++, 객체3) // idx 3->4
app.post("/youtuber", (req, res) => {
const youtuber = req.body;
db.set(idx++, youtuber); //idx n+1
//방법1. req.body의 값으로 채널명 받아오기
res.json({
message: `${youtuber.chennelTitle}님, 유투버 등록이 완료되었습니다.`
});
//방법2. db의 데이터를 불러와 채널명 받아오기
res.json({
message: `${
db.get(newYoutuberId).chennelTitle
}님, 유투버 등록이 완료되었습니다.`
});
});
또한 과정은 달라도 결괏값이 같을 수 있다는 것을 알고 하나의 방식만 고집하지 말고 다른 방식도 받아들일 수 있는 개발자가 됐으면 좋을 것 같다는 생각을 했습니다.
'프로그래머스 데브코스 > TIL' 카테고리의 다른 글
[Day 22] 웹 풀사이클 데브코스 TIL (0) | 2023.12.13 |
---|---|
[Day 21] 웹 풀사이클 데브코스 TIL (0) | 2023.12.12 |
[Day 19] 웹 풀사이클 데브코스 TIL (0) | 2023.12.08 |
[Day 18] 웹 풀사이클 데브코스 TIL (0) | 2023.12.08 |
[Day 17] 웹 풀사이클 데브코스 TIL (0) | 2023.12.06 |