2024.01.03(수)
sample 이미지는 picsum api 사용
다음 두 기능이 HTTP Method도 동일하고 router의 path도 동일해서 문제가 발생한다.
GET
/books
GET
/books?categoryId={categoryId}&new={boolean}
query가 있는데 왜 path가 똑같냐고 생각할 수 있지만 URI 상의 query는 req.query에 담겨오기 때문에 router의 path 자체는 전체 도서 조회와 같은 /books
가 된다.
이를 해결하기 위해 req.query에 값이 있는지 확인하고 routing해주는 간단히 분기 로직을 작성했다.
const booksRequestHandler = (req, res) => {
// 추후 express-validator 사용 (지금은 간단히 분기 로직 구현)
const { categoryId, new: isNew } = req.query;
if (categoryId || isNew) {
getBooksByCategory(req, res);
} else {
getAllBooks(req, res);
}
};