์ผ | ์ | ํ | ์ | ๋ชฉ | ๊ธ | ํ |
---|---|---|---|---|---|---|
1 | 2 | 3 | ||||
4 | 5 | 6 | 7 | 8 | 9 | 10 |
11 | 12 | 13 | 14 | 15 | 16 | 17 |
18 | 19 | 20 | 21 | 22 | 23 | 24 |
25 | 26 | 27 | 28 | 29 | 30 | 31 |
- ์๋ฐ์คํฌ๋ฆฝํธ
- Node.js
- ์น
- ํ๋ก๊ทธ๋๋จธ์ค
- ํ์ดํ๋ผ์ธ
- ์ข์์์ถ๊ฐ
- CS
- ์์ธ์ฒ๋ฆฌ
- ์์์ต๋ํ์๋ฐ์คํฌ๋ฆฝํธ
- ๊น
- ํ์ ์คํฌ๋ฆฝํธ
- ์คํ์์ค
- ํ๋ก๊ทธ๋๋จธ์ค๋ฐฉ๋ฌธ๊ธธ์ด
- npm
- ์ปดํจํฐ๊ณตํ
- post
- ์๋ฐ
- ๋ฐ์ดํฐ๋ฒ ์ด์ค
- js๋ฐฉ๋ฌธ๊ธธ์ด
- ์์์ต๋ํjs
- API
- gui
- ๋ธ๋์น
- ํ๋ก๊ทธ๋๋จธ์ค์์์ต๋ํ
- ๋ฆฌ์กํธ
- js
- Express
- ๋ฆฌํฉํ ๋ง
- ๊นํ๋ธ
- ๊ฐ์ฒด
- Today
- Total
Nevertheless
youtuber-demo ( ์ ์ฒด ์กฐํ, ์ญ์ , ์์ ) ๋ณธ๋ฌธ
๐ฉ๐ป๐ป ์ค์ตํด๋ณด๊ธฐ
1. ์ ์ฒด ์ ํ๋ฒ ์กฐํ(GET)
// ์ ์ฒด ์ ํ๋ฒ ์กฐํ
app.get('/youtubers', function (req, res) {
let youtubers = {}
db.forEach(function (value, key) {
youtubers[key] = value
});
res.json(youtubers)
})
โก๏ธ Map ์ผ๋ก ์ ์ธ๋ db ๋ฅผ ์ํํ๋ฉด์ ๊ฐ ๊ฐ์ฒด๋ฅผ youtubers ๋ฐฐ์ด์ ์ ์ฅํ ํ, ์ด ๋ฐฐ์ด์ JSON ํ์์ผ๋ก ํด๋ผ์ด์ธํธ์ ์ ๋ฌํ๋ค.
2. ๊ฐ๋ณ ์ ํ๋ฒ ์ญ์ (DELETE)
// ๊ฐ๋ณ ์ ํ๋ฒ ์ญ์
app.delete('/youtubers/:id', (req, res) => {
let { id } = req.params
id = parseInt(id)
let youtuber = db.get(id)
if (youtuber == undefined) {
res.json({
message: `์์ฒญํ์ ${id}๋ฒ์ ๊ฐ์
๋ ์ ํ๋ฒ๊ฐ ์๋๋๋ค.`
})
}
else {
const channelTitle = youtuber.channelTitle
db.delete(id)
res.json({
message: `${channelTitle} ๋์ ์ฆ๊ฒจ์ฐพ๊ธฐ์์ ์ญ์ ํ์ต๋๋ค.`
})
}
})
โก๏ธ URL ์ ์ ๋ ฅ๋ id ์ ํด๋นํ๋ ์ ํ๋ฒ๋ฅผ ์ฐพ๋๋ค. ํด๋น ์ ํ๋ฒ๊ฐ ์์ ๊ฒฝ์ฐ์๋ ๊ฐ์ ๋ ์ ํ๋ฒ๊ฐ ์๋๋ผ๋ ๋ฉ์์ง๋ฅผ ์ถ๋ ฅํ๊ณ , ํด๋น ์ ํ๋ฒ๊ฐ ์์ ๊ฒฝ์ฐ delete ๋ฉ์๋๋ฅผ ํตํด ํด๋น id ์ ๊ฐ์ฒด๋ฅผ ์ญ์ ํ๋ค. ๊ทธ๋ฆฌ๊ณ ์ญ์ ํ๋ค๋ ๋ฉ์์ง๋ฅผ ์ถ๋ ฅํ๋ค.
3. ์ ์ฒด ์ ํ๋ฒ ์ญ์ (DELETE)
// ์ ์ฒด ์ ํ๋ฒ ์ญ์
app.delete('/youtubers' , (req, res) => {
let msg=""
//db ์ ๊ฐ์ด 1๊ฐ ์ด์์ด๋ฉด, ์ ์ฒด ์ญ์
if(db.size >= 1) {
db.clear()
msg = "์ ์ฒด ์ ํ๋ฒ๊ฐ ์ญ์ ๋์์ต๋๋ค."
}
else { // ๊ฐ์ด ์์ผ๋ฉด
msg = "์ญ์ ํ ์ ํ๋ฒ๊ฐ ์์ต๋๋ค."
}
res.json({
message: msg
})
})
โก๏ธ db ์ ๊ฐ์ด 1๊ฐ ์ด์์ด๋ฉด clear ๋ฉ์๋๋ฅผ ํตํด ์ ์ฒด ์ญ์ ๋ฅผ ์ํํ๊ณ , db ์ ๊ฐ์ด ์์ผ๋ฉด ์ญ์ ํ ์ ํ๋ฒ๊ฐ ์๋ค๋ ๋ฉ์์ง๋ฅผ ์ถ๋ ฅํ๋ค.
4. ๊ฐ๋ณ ์ ํ๋ฒ ์์ (PUT)
// ๊ฐ๋ณ ์ ํ๋ฒ ์์
app.put('/youtubers/:id', function (req, res) {
let { id } = req.params
id = parseInt(id)
let youtuber = db.get(id)
let oldTitle = youtuber.channelTitle
if (youtuber == undefined) {
res.json({
message: `์์ฒญํ์ ${id}๋ฒ์ ๊ฐ์
๋ ์ ํ๋ฒ๊ฐ ์๋๋๋ค.`
})
}
else {
let newTitle = req.body.channelTitle
youtuber.channelTitle = newTitle // ์๋ก์ด ์ฑ๋๋ช
์ผ๋ก ๋ณ๊ฒฝ
db.set(id, youtuber) // ๋ค์ ์ ํ๋ฒ๋ฅผ ์
ํ
=> ๋ฎ์ด์ฐ๊ธฐ
res.json({
message: `${oldTitle} ๋, ์ฑ๋๋ช
์ด ${newTitle} ๋ก ์์ ๋์์ต๋๋ค. `
})
}
})
โก๏ธ URL ์ ์ ๋ ฅ๋ ํด๋น id ์ ์ ํ๋ฒ๋ฅผ ์ฐพ๋๋ค. ํด๋น id ์ ์ ํ๋ฒ๊ฐ ์์ ๊ฒฝ์ฐ ๊ฐ์ ๋ ์ ํ๋ฒ๊ฐ ์๋๋ผ๋ ๋ฉ์์ง๋ฅผ ์ถ๋ ฅํ๊ณ , ์ ํ๋ฒ๊ฐ ์์ ๊ฒฝ์ฐ ํด๋น ๊ฐ์ฒด์ ์ฑ๋๋ช ์ ์๋ก์ด ์ฑ๋๋ช ์ผ๋ก ๋ณ๊ฒฝํ๋ค. ๋ณ๊ฒฝ์ด ์๋ฃ๋ ๊ฒฝ์ฐ, ์์ ๋์๋ค๋ ๋ฉ์์ง๋ฅผ ์ถ๋ ฅํ๋ค.
๐ ๋ฐฐ์ด ์ ๊ณผ ๋๋ ์
์ด๋ฒ์ฃผ๋ถํฐ ๊ณ์ ์ ํ๋ฒ ๋ฐ๋ชจ REST API ์ค๊ณ ํ๋ ๊ฒ์ ๋ฐฐ์ฐ๊ณ ์๋ค. ์ฒ์์๋ ๋ฏ์ค๊ณ ์ด๋ ค์ ๋๋ฐ, ๊ณ์ ๋ฐ๋ณตํด์ ํ๋ค๋ณด๋ ์ต์ํด์ง๊ณ ์ฌ๋ฏธ๋ฅผ ๋๋ผ๊ณ ์๋ ๊ฒ ๊ฐ๋ค. ์กฐํํ ๋๋ GET, ๋ฑ๋กํ ๋๋ POST, ์ญ์ ํ ๋๋ DELETE ๊ทธ๋ฆฌ๊ณ ์์ ํ ๋๋ PUT ๋ฉ์๋๋ฅผ ์ฌ์ฉํ๋ค๋ ๊ฒ์ ์์ง ๋ง์์ผ๊ฒ ๋ค. ๋ญ๊ฐ ์ด์ ์๋ ๋ฐฑ์๋์ ๋ํด์ ์ด๋ ต๊ณ ์ฌ๋ฏธ์์ ๊ฒ์ด๋ผ๋ ํธ๊ฒฌ์ด ์์๋๋ฐ ์คํ๋ ค ๋ฐฑ์๋๊ฐ ํ ์น์ฌ์ดํธ๋ฅผ ๋ง๋๋ ๋ฐ ์ค์ง์ ์ธ ์ญํ ์ ํ๋ ๋งํผ ์๊ทผ ์ฌ๋ฐ๋ค๋ ์๊ฐ๋ ๋ ๋ค. ์์ผ๋ก๋ ์ด์ฌํ ํด์ผ๊ฒ ๋ค๐ฅ
'๋ฐ๋ธ์ฝ์ค' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
ํ์ api ์ค๊ณ (ํ์ ๊ฐ์ , ํ์ ์กฐํ, ํ์ ํํด) (0) | 2024.09.08 |
---|---|
์์ธ ์ฒ๋ฆฌ (2) | 2024.09.07 |
์๋ฐ์คํฌ๋ฆฝํธ ๋ฌธ๋ฒ (+ ๋ฆฌํฉํ ๋ง, ์ํ ์ฝ๋) (0) | 2024.09.06 |
POST method (0) | 2024.09.04 |
๋ฐฑ์๋(6)-express(3) (0) | 2024.09.03 |