반응형
하단의 에러 처리 코드로 에러 처리 시, 개발자도구에서는 비록 404 에러가 발생했더라도 status 200이 뜸.
왜냐하면 404 에러가 발생 시, [2] 의 미들웨어에서는 정상적으로 404.ejs 파일을 render 해줬기 때문임.
// [1]. restaurants api 코드
app.get('/restaurants/:id',(req,res)=>{
const restaurantId = req.params.id
const filePath = path.join(__dirname,'data','restaurants.json');
const fileData = fs.readFileSync(filePath);
const storeRestaurants = JSON.parse(fileData);
storeRestaurants.forEach(restaurant => {
if (restaurant.id === restaurantId){
// 노란색 restaurant는 foreach 의 restaurant를 뜻하며, 흰색 restaurant는 ejs로 보낼 키를 뜻함.
return res.render('restaurant-detail',{rid : restaurantId,restaurant : restaurant});
}
});
return res.render('404');
});
// [2]. 에러 처리 미들웨어
// 만약 [1]에서 주소를 잘못 입력하여 404 에러가 발생할 시, '404 에러발생' 이라는 로그를 남기고, 404.ejs 파일을 render해줌.
app.use((req,res)=>{
console.log('404 에러발생')
res.render('404');
});
그래서, 개발자도구에서 실제로 404 에러 시, 상태 역시 404로 정상적이게 보이려면 status 를 추가작업 해줘야함.
// status() 에 상태처리를 원하는 번호를 입력하여 해당 상태가 발생시, 올바르게 상태처리를 하도록 코드를 바꿔줌
app.use((req,res)=>{
console.log('404에러발생')
res.status(404).render('404');
});
반응형
'백엔드 > node.js' 카테고리의 다른 글
토큰 기반 인증 시스템의 장점 (0) | 2023.02.05 |
---|---|
node.js에서 mysql 연결 (0) | 2022.05.28 |