본문 바로가기

JavaScript

Express - Path에 매개변수 사용하기

팬 메이드 게임 중 하나인 포켓로그 다들 해보셨나요?

포켓몬 도감을 만들고 싶으면 어떻게 하면 좋을까요?
poketmons 라는 페이지를 만들어 여기에 라우팅을 해주면 됩니다.

그렇다면, 도감에 있는 포켓몬 중 하나를 보고 싶다면..?
슬래시 뒤에 도감 번호로 분리하여 페이지를 만들어주면 됩니다.

아...무수히 많은 페이지를 생성해야 할까요?


✍ 경로 파라미터(Route Parameter)

app.get('/poketmons/:no', function(req, res) {
	res.send(req.params); 
})

// url: /poketmons/1
// response: { "no" : "1" }

콜론을 사용하면 URL에 입력한 값을 매개 변수로 사용할 수 있습니다.

 

✍ Map 객체 사용하기

let db = new Map();

db.set(1, { name: '이상해씨', type: ['풀', '독'], height: 0.7, weight: 6.9 });
db.set(2, { name: '이상해풀', type: ['풀', '독'], height: 1.0, weight: 13.0 });
db.set(3, { name: '이상해꽃', type: ['풀', '독'], height: 2.0, weight: 100.0 });

app.get('/poketmons/:no', function(req, res) {
  let { no } = req.params;
  no = parseInt(no);
  
  if (db.get(no) == undefined) {
    res.json({
      message: '존재하지 않는 도감 번호입니다.'
    })
  } else {
    res.json(db.get(no));
  }
})

맵(Map)은 키-밸류 형태의 자료구조입니다.
객체와 비슷하다고 느낄 수 있는데, 여기에 차이점이 잘 정리되어 있습니다.

⭕ 존재하는 키 값 호출

❌ 존재하지 않는 키 값 호출


포스트를 끝까지 봐주셔서 감사합니다.

틀린 내용이 있다면 댓글로 지적 부탁드립니다!