app.get('/detail/:id', async function(req, 응답){
let result = await db.collection('post').findOne({_id : new ObjectId(req.params.id)})
응답.render('detail.ejs', {result : result})
위의 코드에서 에러가 나서 몇 가지 시도해봤는데 전혀 이유를 모르겠습니다.
1. result = await db.collection('post').findOne({_id : new ObjectId('65865c611359df842844deeb')})
위와 같이 입력했을 때 main.css가 적용되지 않습니다.
2. ObjectId(req.params.id)를 사용하기만 하면
BSONError: Argument passed in must be a string of 12 bytes or a string of 24 hex characters or an integer
와 같은 에러가 뜹니다.
const { ObjectId } = require('mongodb') 코드 추가했습니다. 이거 문제는 아닌 것 같고..
혹시 뭐가 문제인지 알고 계실까요..?
아래는 쓰다 만 코드 제출합니다.
server.js
app.get('/detail/:id', async function(req, 응답){
console.log(new ObjectId(req.params.id))
//const objID = new ObjectId(req.params.id)
//console.log('ObjectId:', objID)
//let result = await db.collection('post').findOne({_id : objID})
//console.log(result)
//result = await db.collection('post').findOne({_id : new ObjectId('65865c611359df842844deeb')})
//console.log(result)
응답.render('detail.ejs')
})
detail.ejs
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Document</title>
<link href="main.css" rel="stylesheet">
</head>
<body class="grey-bg">
<%- include('nav.ejs') %>
<div class="detail-bg">
<h4>sdf</h4>
<p>sdf</p>
</div>
</body>
</html>