728x90
๋ฐ์ํ
๐ก ์ค์ต ํฌ์ธํธ!
- ์์ธ ํ์ด์ง ๊ฒฝ๋ก์ id ๋ผ๋ ํ๋ผ๋ฏธํฐ๋ฅผ ํ์ฉํ์ฌ ๊ฒ์๋ฌผ _id ์ ์ผ์นํ๋ ์์ธํ์ด์ง๋ก ๋์ด๊ฐ ์ ์๊ฒ ์ฝ๋๋ฅผ ์์ฑํ๋ค.
๐ ํ๋ผ๋ฏธํฐ ๋ฌธ๋ฒ์ผ๋ก ๊ฒ์๋ฌผ ์์ธ ํ์ด์ง ๊ฒฝ๋ก ๋ง๋ค๊ธฐ
app.get('/detail/:id', function(req, res){
req.params.id = parseInt(req.params.id);
db.collection('post').findOne({_id : req.params.id}, function(err, result){
res.render('detail.ejs', {detail : result});
})
});
- ํ๋ผ๋ฏธํฐ๋ ์ฝ๊ฒ ๋งํด์ URL ๋ค์ ๋ฌด์์์ ๋ฌธ์๋ฅผ ๋ถ์ผ ์ ์๋๋ก ๋ง๋ค์ด์ฃผ๋ URL ์๋ช ๋ฐฉ์์ด๋ค.
- ์ฝ๋ก (:) ๊ธฐํธ๋ฅผ ๋ถ์ฌ์ฃผ๋ฉด /detail/ ๋ค์ ์ด๋ค ๋ฌธ์์ด์ ๋ถ์ฌ์ค๋ GET ์์ฒญ์ ์ธ์ํ๊ณ ์ฝ๋ฐฑํจ์๋ฅผ ์คํํ๋ค.
- ์ฝ๋ก (:) ๊ธฐํธ ๋ค์๋ ์์ ๋กญ๊ฒ ์ด๋ฆ์ ๋ถ์ด๋ฉด ๋๋๋ฐ, ๋์ ๊ฒฝ์ฐ ๊ฒ์๋ฌผ์ _id ๊ฐ ๋ค์ด๊ฐ ๋ถ๋ถ์ด๋ฏ๋ก id ๋ผ๊ณ ํ๋ผ๋ฏธํฐ๋ฅผ ๋ถ์ฌ์ฃผ์๋ค. (ํ๋ผ๋ฏธํฐ๋ ์ฌ๋ฌ ๊ฐ๋ฅผ ์ด์ด๋ถ์ผ ์๋ ์๋ค.)
- ์ด์ ํด๋นํ๋ ๊ฒ์๋ฌผ์ DB ์์ ์ฐพ์์์ผํ๋๋ฐ, ์ด๋ db.collection ์ค post ์์ ํด๋นํ๋ ๊ฒ์๊ธ ํ๋๋ฅผ ์ฐพ์์ค๋ผ๋ ์๋ฏธ์ db.collection('post').findOne() ํจ์๋ฅผ ์ฌ์ฉํ๋ฉด ๊ฐ๋ฅํ๋ค.
- .findOne() ํจ์์ ์ฒซ๋ฒ์งธ ํ๋ผ๋ฏธํฐ๋ก๋ { _id : req.params.id } ๋ฅผ ์ฌ์ฉํ๋๋ฐ, URL ํ๋ผ๋ฏธํฐ์ธ id ๊ฐ์ ๋ฐ์ ์ด๋ฅผ ํตํด์ ํน์ ๊ฒ์๋ฌผ์ _id ์ ์ ์ฉํ์ฌ ํด๋นํ๋ ๊ฒ์๊ธ์ ๋ฐ์์ฌ ์ ์๋ค.
- ๊ทธ๋ฆฌ๊ณ ์ค์ํ ๊ฒ req.params.id ๋ฅผ ๋ฌธ์์ด๋ก ๋ฐ๋์ด ์ ๋ฌ๋๋ ๊ฒฝ์ฐ๊ฐ ์๊ธธ ์ ์์ผ๋ฏ๋ก req.params.id = parseInt(req.params.id) ๋ผ๋ ์ฝ๋๋ฅผ ์์ฑํ์ฌ ์ซ์๋ก ๋ณํ์ ํด์ค์ผ ํ๋ค.
- ๊ทธ๋ ๊ฒ DB ์์ ๋ฐ์์จ ๊ฒ์๋ฌผ ๋ฐ์ดํฐ๋ result ์ ๋ด๊ฒจ์ค๋๋ฐ ์ด๋ฅผ detail.ejs ํ์ผ์ ๋๊ฒจ์ค ๋ detail ์ด๋ผ๋ ๋ณ์์ ๋ด์์ ๋๊ฒจ์ฃผ์๋ค.
๐ ์์ธ ํ์ด์ง EJS ํ์ผ ๋์์ธํ๊ธฐ
<h4 class="container mt-5"><strong>์์ธ ํ์ด์ง</strong></h4>
<div class="container mt-4">
<p class="mb-2">ํ ์ผ : <%= detail.ํ ์ผ %></p>
<p class="mb-2">๋ง๊ฐ์ผ : <%= detail.๋ง๊ฐ์ผ %></p>
</div>
- ์ด์ views ํด๋ ํ์์ ์์ธ ํ์ด์ง EJS ํ์ผ์ ๋ง๋ค์ด์ค๋ค.
- JavaScript ์ผ๋ก๋ถํฐ ํด๋นํ๋ ๊ฒ์๋ฌผ์ detail ์ด๋ผ๋ ๋ณ์์ ๋ด์์ ๋ฐ์์์ผ๋ ์ด๋ฅผ ํ์ฉํ๋ฉด ๋๋ค.
- EJS ๋ฌธ๋ฒ ์์ detail.ํ ์ผ, detail.๋ง๊ฐ์ผ ๊ณผ ๊ฐ์ด ์์ฑํด์ฃผ๋ฉด DB ์์ ๋ฐ์์จ ๋ฐ์ดํฐ๊ฐ HTML ๋ด์ฉ์ผ๋ก ๋ ๋๋ง๋์ด ๋ธ๋ผ์ฐ์ ์ ๋ณด์ฌ์ง๋ค.
๐ ๋ธ๋ผ์ฐ์ ์์ ํ์ธํ๊ธฐ
728x90
๋ฐ์ํ
'[๊ฐ๋ฐ] Practice > Node.js MongoDB' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[Node.js / MongoDB] ํ์์ธ์ฆ๊ธฐ๋ฅ ๋ง๋ค๊ธฐ (0) | 2022.03.14 |
---|---|
[Node.js / MongoDB] ๊ธ ์์ ๊ธฐ๋ฅ ๋ง๋ค๊ธฐ (0) | 2022.03.12 |
[Node.js / MongoDB] AJAX ๋ก ์ญ์ ์์ฒญํ๊ธฐ (0) | 2022.03.12 |
[Node.js / MongoDB] ๊ฒ์๋ฌผ๋ง๋ค ๋ฒํธ ๋ฌ๊ธฐ (0) | 2022.03.11 |
[Node.js / MongoDB] HTML ์ DB ๋ฐ์ดํฐ ๋ฃ์ด๋ณด๊ธฐ (0) | 2022.03.11 |