const { MongoClient, ObjectId } = require('mongodb')
ObjectId 를 사용하기 위해 위의 코드로 수정해준다
app.get('/detail/:aaaa', async (요청, 응답) => {
let result = await db.collection('post').findOne({ _id : new ObjectId('65438fd11b215d628373e1d9') })
console.log(요청.params)
응답.render('detail.ejs')
})
:aaaa 를 뒤에 붙여서 유저가 임의로 뒤에 갖다붙힐 수 있도록 했고, 주의할 점은 아무것도 갖다붙히지 않으면
/detail 로 이동할텐데 이는 명시하지 않아서 에러가 났었음
요청.params 는 유저한테 요청받은 값을 그대로 출력해볼 수 있다.
db.collection('post').findOne({ _id : new ObjectId('65438fd11b215d628373e1d9') }
위 같은 함수를 통해 지난 번 DB 내의 모든 값을 불러왔던 거와 다르게 해당 데이터 값 하나만 불러올 수 있었다.
유저가 /detail/ 뒤에 글_id 를 입력해서 GET요청을 날리면
detail.ejs 페이지를 보여주는데 글제목과 내용이 페이지에 박혀있어야한다
는 과제를 받았다.
server.js
app.get('/detail/:aaaa', async (요청, 응답) => {
let id = 요청.params.aaaa
let result = await db.collection('post').findOne({ _id : new ObjectId(id) })
console.log(result)
응답.render('detail.ejs', { 글 : result})
})
detail.ejs
<div class="detail-bg">
<h4><%= 글.title%></h4>
<p><%= 글.content%></p>
</div>
위와 같이 코드를 짰다. 성공적이었다.
'컴퓨터 프로그래밍 > Node.js' 카테고리의 다른 글
[Node.js] 수정기능 만들기 1 (0) | 2023.11.08 |
---|---|
[Node.js] 상세페이지 만들기 2 (링크 만들기) (0) | 2023.11.07 |
[Node.js] 글 작성기능 만들기 2 (insertOne, 예외 처리) (0) | 2023.11.07 |
[Node.js] 글 작성기능 만들기 1 (POST 요청) (0) | 2023.11.07 |
[Node.js] RESTful API (0) | 2023.11.06 |