백엔드/node.js

상태 코드 작업(404,500,200 etc...)

STUFIT 2022. 5. 23. 00:23
반응형

하단의 에러 처리 코드로 에러 처리 시, 개발자도구에서는 비록 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 에러지만, 개발자도구에서는 status 200 으로 보임.

그래서, 개발자도구에서 실제로 404 에러 시, 상태 역시 404로 정상적이게 보이려면 status 를 추가작업 해줘야함.

// status() 에 상태처리를 원하는 번호를 입력하여 해당 상태가 발생시, 올바르게 상태처리를 하도록 코드를 바꿔줌
app.use((req,res)=>{
    console.log('404에러발생')
    res.status(404).render('404');
});

status에 404를 넣은 후에는 404에러 시, 정상적으로 개발자도구에도 404 에러처리 된 것으로 확인

반응형

'백엔드 > node.js' 카테고리의 다른 글

토큰 기반 인증 시스템의 장점  (0) 2023.02.05
node.js에서 mysql 연결  (0) 2022.05.28