app.get('/detail/:id', async (요청, 응답)=>{ // detail/: 쓰면 : 자리에 아무 문자나 써도 ㄱㅊ
// console.log(요청.params);
try{
let result = await db.collection('post').findOne({_id: new ObjectId(요청.params.id)});
// console.log(result);
if(result===null){
응답.status(400).send('이상한 url 입력함');
return;
} else {
응답.render('detail.ejs', {글: result});
//같은페이지를 보내줄 수는 없으므로 페이지 내용을 따로 설정!
}
} catch(e) {
console.log(e);
응답.status(400).send('이상한 url 입력함'); //400: 유저문제, 500: 서버 문제
return;
};
});
수업을 듣고 나서 이것저것 찾아보며 이렇게 코드를 짰고, 사이트는 잘 동작합니다.
다만
BSONError: input must be a 24 character hex string, 12 byte Uint8Array, or an integer at new ObjectId
이런 경고문이 링크(제목으로 세부페이지 접속하는 링크) 접속 시마다 계속 발생하고 있습니다.
아이디를 확인해보면 DB의 아이디와 동일하고 형식도 맞는데 이런 문제가 발생하는 이유가 궁금합니다..