
모임 만드는 cluvie 프로젝트의 라우터를 구현하다가
엉뚱한 다른 라우터의 값이 리턴되는 상황에 마주했다...
'에러도 아니고 응답은 되는데 아예 다른 응답이라니..?'
차라리 에러가 낫다고 생각할정도로 해맸었다
아주 간단하고도 기본적인 문제었기에 정리해보려고 한다
// 클럽 1개씩 불러오기
clubRouter.get("/:id", async (req, res, next) => {
try {
const club = await Clubs.findOne({ where: { id: req.params.id } });
if (!club) {
return res
.status(404)
.json({ success: false, message: "존재하지 않는 모임입니다." });
}
await club.increment({ views: 1 }, { where: { id: req.params.id } });
res.status(200).json({ success: true, club });
} catch (err) {
next(err);
}
});
// 유저가 만든 모임 목록
clubRouter.get("/manager", verifyToken, async (req, res) => {
try {
const user_id = req.user;
console.log(user_id);
const clubList = await clubService.getClubListMadeByMe({ user_id });
res.status(200).json({ success: true, clubList });
} catch (err) {
res.status(404).json({ success: false, message: err.message });
}
});
라우터 선언 순서를 이렇게 했더니 /:id 라우터에 빨려들어가서 다른 라우터가 불려졌다
같은 자리에 params와 다른 주소를 불러오는 라우터가 있다면 순서를 주의하쟈!
// 유저가 만든 모임 목록
clubRouter.get("/manager", verifyToken, async (req, res) => {
try {
const user_id = req.user;
console.log(user_id);
const clubList = await clubService.getClubListMadeByMe({ user_id });
res.status(200).json({ success: true, clubList });
} catch (err) {
res.status(404).json({ success: false, message: err.message });
}
});
// 클럽 1개씩 불러오기
clubRouter.get("/:id", async (req, res, next) => {
try {
const club = await Clubs.findOne({ where: { id: req.params.id } });
if (!club) {
return res
.status(404)
.json({ success: false, message: "존재하지 않는 모임입니다." });
}
await club.increment({ views: 1 }, { where: { id: req.params.id } });
res.status(200).json({ success: true, club });
} catch (err) {
next(err);
}
});