
getElementById AboutMe.jsxuser_profile_image.user-profile-imageapp.get("/:nickname", function (req, res) {
const parmas = req.params;
res.json({
chanel: parmas.nickname,
});
});
/:nickname (Route Parameter)
req.params

app.get("/watch", function (req, res) {
const { v, t } = req.query;
console.log(v, t);
res.json({
video: v,
time: t,
});
});
req.query
URL에서 ? 뒤에 오는 키=값 쌍들을 담는 객체
여러 개의 데이터를 보낼 때는 &로 구분 (예: ?v=1&t=2)
특징: 경로(/:id)와 달리 서버 코드에서 경로를 미리 지정할 필요가 없고, 어떤 값이 들어와도 req.query가 다 받아줌
비구조화 할당 (const { v, t } = req.query)
원래는 const v = req.query.v;, const t = req.query.t;라고 써야 하는 것을 한 줄로 줄인 자바스크립트 최신 문법
코드의 가독성이 좋아져서 실무에서 매우 많이 사용

const array = [1, 2, 3, 4, 5];
const [, num2, num3, , num5] = array;
console.log(num2);
console.log(num3);
console.log(num5);
배열 비구조화 할당은 순서(Index)를 찾아감
[ : 첫 번째 요소(1)는 받을 변수가 없어서 무시
, num2 : 두 번째 요소(2)를 num2 변수에 담음
, num3 : 세 번째 요소(3)를 num3 변수에 담음
, : 네 번째 요소(4)는 쉼표만 있으므로 무시
, num5] : 다섯 번째 요소(5)를 num5 변수에 담음

let youtuber = {
user01: {
channelTitle: "SSG랜더스",
subscribers: "21.4만명",
videoNum: "4.2천개",
},
user02: {
channelTitle: "튜브김민교",
subscribers: "77.6만명",
videoNum: "1.9천개",
},
user03: {
channelTitle: "두치와뿌꾸",
subscribers: "88.7만명",
videoNum: "1.9만개",
},
};
app.get("/:nickname", (req, res) => {
const { nickname } = req.params;
if (nickname == "@SSGLANDERS") {
res.json({ youtuber: youtuber.user01 });
} else if (nickname == "@Onepunchk1ng_mk") {
res.json({ youtuber: youtuber.user02 });
} else if (nickname == "@두치와뿌꾸") {
res.json({ youtuber: youtuber.user03 });
} else {
res.json({ message: "등록되지 않은 유튜버입니다." });
}
});
데이터 정의 (youtuber 객체)
요청 처리 (app.get)
const { nickname } = req.params;: 브라우저 주소창에 친 /값을 nickname이라는 변수에 담음
조건문 (if...else if):



app.get("/:id", function (req, res) {
let { id } = req.params;
id = parseInt(id);
res.json({
id: id,
food: db.get(id),
});
});
let db = new Map();
db.set(1, "Kimchi");
db.set(2, "Bibimbap");
db.set(3, "Bulgogi");
Map 객체 생성 및 데이터 저장
일반 객체({})와 비슷하지만, Map은 set으로 저장하고 get으로 불러온다는 차이가 있음
중요: 여기서 저장된 Key는 문자열 "1"이 아니라 숫자 1
왜 parseInt(id)가 반드시 필요한가?
브라우저 주소창(req.params)을 통해 들어오는 모든 값은 문자열(String)
만약 localhost:3001/1로 접속하면, 서버는 id = "1" (문자열)로 받음
그런데 우리가 db.set(1, ...)으로 저장한 Key는 숫자 1
자바스크립트의 Map은 데이터 타입을 엄격하게 구분하기 때문에, 문자열 "1"로 찾으면 데이터를 찾지 못하고 undefined를 반환



1. Params vs Query: 주소창 데이터 추출
/:id): 게시글 번호처럼 리소스의 고유한 식별이 필요할 때 사용(req.params)?v=): 검색어나 필터링처럼 추가 옵션을 보낼 때 사용(req.query)2. 비구조화 할당
,로 건너뛸 수 있음3. Map 자료구조와 형변환
Map은 Key의 데이터 타입을 엄격하게 구분parseInt()로 형변환을 해줘야 함