app.get('/detail/:id', function(req, res){
db.collection('post').findOne( {_id : parseInt(req.params.id)}, function(에러, 결과){ // req.params.id는 /detail의 파라미터값 = 사용자가 입력한 값,,,
if(결과 == null) {return res.status(404).send('요청 페이지 없음')};
res.render('detail.ejs', { data : 결과 }); //DB(몽고DB)에서 찾은 데이타를 지금 이 페이지에서 data(=변수)라고 이름을 지었음 . 그 변수 안에 결과오브젝트를 집어넣은것이고 그리고 그걸 detail.ejs로 보냄
console.log(결과)
});
});
고생 많으십니다!
클라이언트가 입력한값의 정보가 서버에 없을때를 처리하는 과제를 하는중이었습니다.
일단 위 코드는 기능은 잘 작동되는? 코드입니다.
1. 결과 == null 이 아닌 에러 파라미터를 이용하여 요청페이지없음을 나타내는 방법이 있을까요?
2. if( 결과._id == null )는 왜 안될까요.. "찾은 결과안의 _id값이 비었을 경우" 를 의도했고,
TypeError: Cannot read properties of undefined (reading '결과._id') 가 뜹니다
2. 코드를 해석하는 이 브라우저?주체?는 일반적으로는 function의 첫 파라미터,에러에 대한 판단을 어떻게 하나요?
코드를 작성하다보니 에러를 if로 직접 정의해서 처리한 느낌이 들어서요!
그래서 1번과 같은 궁금증이 생겼습니다.
다 여쭤보는것 같지만 요것만 2시간 잡았습니다 ㅜㅜ