index.js 파일 일부분
redirect: async (req, res) => {
let found = await url.findOne({ where: { id: req.params.id } }); //url모델 찾기
if(!found) { //github주소로 접속한게 아니라면
return res.status(302).send(); //302메시지보냄
}
const result = await found.update({ visits: found.visits + 1 });
res.redirect(result.url); //새로운 url로 redirect
}
왜 해당 id값의 url모델을 찾지 못해야 성공일까 생각했었다.
단단히 착각을 하고있었다. 리디렉션을 위해 접속하는 주소가 https://www.github.com 라고 생각했었다. 사실 깃헙주소가 아니라 http://localhost:3000/links/1 였다.
리다이렉트의 과정은 이렇다.
요청을 두번 보낸다는 것이다.
http://localhost:3000/links/1
로 접속을 요청한다.redirect는 저번에 봤을 때도 아리까리했는데 역시 다시봐도 헷갈린다.