๐โโ๏ธ1. Node.js๋ก 5๋ถ๋ง์ API ๋ง๋ค๊ธฐ
๐โโ๏ธ2. Node.js๋ก POST API ๋ง๋ค๊ธฐ
๐โโ๏ธ3. Node.js๋ก ๋ฐ์ดํฐ ์ ์ฅํ๊ธฐ
MongoDB์๋ id๋ฅผ Auto Increment ํ๋ ๊ธฐ๋ฅ์ด ์๋ค. ๊ฒ์ํ์ ๊ธ๋ฒํธ ๊ฐ์ ๊ธฐ๋ฅ์ ๋ง๋ค๋ ค๋ฉด ๋ฐ๋ก ๊ตฌํ์ด ํ์ํ๋ฐ, ์ด๋ฒ์ ์ด๋ป๊ฒ ํ๋์ง ์์๋ณด์. ๊ทธ๋ฆฌ๊ณ ๊ฒ์๋ฌผ์ ์ญ์ ํ๋ ๊ฒ๊น์ง ํด ๋ณผ ์๊ฐ์ด๋ค(Update, Delete).
MongoDB์ collection ํ๋ ๋ ๋ง๋ค๊ธฐ
์ฐ์ ๊ธฐ์กด์ ๋ง๋ค์ด๋์
post
์ปฌ๋ ์
์ธ์ counter
์ปฌ๋ ์
์ ํ๋ ๋ ๋ง๋ค๊ณ , ๋ด๋ถ์ ์์์ ๋ฐ์ดํฐ๋ฅผ ํ๋ ๋ฃ์ด๋ณด์. totalPost ํญ๋ชฉ์ int32
๋ก ์ค์ ํด์ค๋ค. ์ด์ totalPost์ ์ง๊ธ๊น์ง ๋ช ๋ฒ ๊ฒ์๋ฌผ์ ๋ฐํํ๋์ง ์ ์ฅํ ์์ ์ด๋ค.
๊ตฌํํ ๋ด์ฉ์ ํ๋ฆ์ ์ ๋ฆฌํด๋ณด์๋ฉด ์๋์ ๊ฐ๋ค.
- ํด๋ผ์ด์ธํธ์์ ๊ฒ์๋ฌผ ๋ฐ์ดํฐ๋ฅผ ์์ฒญ
counter
์์ ํ์ฌ ๊ฒ์๋ฌผ ์ด ๊ฐ์ ๊ฐ์ ธ์ค๊ธฐ- ์ด ๊ฐ์ + 1๋ก ์๋ก์ด ๊ฒ์๋ฌผ์
_id
๋ง๋ค๊ธฐ post
์ ์ ์ฅcounter
์totalPost
๊ฐ +1๋ก ์ ๋ฐ์ดํธ- ์ ์ฅ ์๋ฃ ๋ฉ์์ง ๋ฐํ
๊ธฐ์กด ์ฝ๋ ์์ ํ๊ธฐ
์๋๋ ์ด๋ฐ ์์ผ๋ก ๊ตฌํ ๋์ด ์์๋ค.
1 |
|
์๋์ ๊ฐ์ด ๋ณ๊ฒฝํด๋ณด์.
1 |
|
์ฝ๋๊ฐ ๋ง์ด ๊ธธ์ด์ง ๊ฒ ๊ฐ์ง๋ง ๋ ๊ฐ๊ฒฐํ๊ฒ๋ง ์์ฑํ ์๋ ์๋ค. ์ฌ๊ธฐ์๋ ๊ฒ์๋ฌผ ์ ์ฅ๊ณผ ์นด์ดํฐ ์
๋ฐ์ดํธ๋ฅผ ํ ๋ฒ์ ์ฒ๋ฆฌํ๊ธฐ ์ํด withTransaction
์ ์ฌ์ฉํด์ ์์ ์ฑ์ ํ๋ณดํ๋๋ผ ์ฝ๋๊ฐ ์ข ๋ ๊ธธ์ด์ก๋ค. counter์ ๋ฐ์ดํฐ๊ฐ ์์ ๊ฒฝ์ฐ๋ฅผ ๋๋นํด์ ์์ธ ์ฒ๋ฆฌ๋ฅผ ํ๊ธฐ๋ ํ๋ค. ๊ฒ์๋ฌผ ์ ์ฅ ์ค์ ์๋ฒ๊ฐ ๊บผ์ง๊ฑฐ๋ ํ๋ ๊ฒฝ์ฐ์ ๊ฒ์๋ฌผ ์๊ฐ ์ข ์ด๊ธ๋๋ ์๊ด์๋ค๋ฉด ํธ๋์ญ์
์ฒ๋ฆฌ๋ฅผ ํ์ง ์์๋ ๋ฌธ์ ๋ ์๋ค.
์ด์ ๊ฒ์๋ฌผ ๋ฒํธ๋ฅผ ์์ฑํ๋ฉด์ ๊ธฐ์กด totalPost๋ฅผ Update ํ๋ ๊ฒ๊น์ง ๊ตฌํํด๋ณด์๋ค.
๊ฒ์๋ฌผ ์ญ์ ๋ฅผ ํด๋ณด์
HTTP ์์ฒญ์๋ 4๊ฐ์ง ์ข
๋ฅ๊ฐ ์๋ค. GET, POST, PUT, DELETE
์ธ๋ฐ form์์๋ GET, POST ์์ฒญ๋ฐ์ ํ ์ ์๋ค. ๊ทธ๋ผ ์ญ์ ์์ฒญ์ ์ด๋ป๊ฒ ๋ณด๋ด์ผ ํ ๊น?
- AJAX๋ก DELETE ์์ฒญ์ ๋ณด๋ธ๋ค.
- POST ์์ฒญ์ ๋ ๋ ค์ DELETE๋ฅผ ์ํํ๋ค.
์ฌ์ค ๋ ๊ฐ์ง ๋ฐฉ๋ฒ ๋ชจ๋ ์๋ํ๊ณ , POST๋ก ์ญ์ ์์ฒญ์ ๋ณด๋ด๋ ์๊ด์ ์์ง๋ง! Restfulํ API๋ฅผ ๋ง๋ค๊ธฐ ์ํด ์กฐ๊ธ ๋ ๋ฒ๊ฑฐ๋กญ๋๋ผ๋ 1๋ฒ ๋ฐฉ๋ฒ์ ์ฌ์ฉํ๋ ๊ฒ์ด๋ค.
1 |
|
AJAX์ ๊ธฐ๋ณธ์ ์ธ ์ฌ์ฉ๋ฒ์ ์์ ๊ฐ๋ค. Jquery๋ฅผ ์ฌ์ฉํ์ง ์๊ณ ๋ ์ธ ์ ์๋๋ฐ, ์ฐ์ ์ ๋น ๋ฅด๊ณ ํธํ๊ฒ ์ฐ๊ธฐ ์ํด jquery ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ฅผ ์ถ๊ฐํ๋ค. ์ ์์๋ฅผ ์ค์ ์ฝ๋์ ์ ์ฉํด๋ณด์.
1 |
|
button์ data-id
๋ฅผ ๋ถ์ฌ์ ๊ฐ ํญ๋ชฉ์ _id๋ฅผ ์ฐพ์ ์ ์๋๋ก ํด ๋ ๋ค์,
1 |
|
๊ฐ ๋ฒํผ์ ๋๋ ์ ๋ AJAX๊ฐ ์คํ๋๋๋ก ์ฒ๋ฆฌํ๋ค.
1 |
|
server.js์๋ /delete
์์ฒญ์ด ๋ค์ด์์ ๋ ์ด๋ป๊ฒ ํด์ผ ํ ์ง ์์ฑ์ด ํ์ํ๋ค. id๊ฐ์ ์ซ์๋ก ์ฐพ์ ์ ์๋๋ก request์์ ๋ฐ์ _id๋ฅผ parseInt ํ๋ ๊ณผ์ ์ด ํ์ํ๋ค.
AJAX Delete ์์ฒญ์ ์ฌ์ค
1 |
|
์ด๋ฐ ์์ผ๋ก, data๋ฅผ ์ ๋ฌํ์ง ์๊ณ url์ ๋ฐ๋ก ๋ด์์ ์ ๋ฌํ๋ ๊ฒฝ์ฐ๊ฐ ๋ ์ผ๋ฐ์ ์ด๋ค. ์์์๋ AJAX์ฌ์ฉ๋ฒ์ ์ต๋ํ ๋ง์ถ์ด์ ์์ฑํด๋ณด๋ ค๊ณ data์ ๋ด์๋ค.
์๋ต ๋ฐ์ดํฐ์ ์ข ๋ฅ ์์๋ณด๊ธฐ
1 |
|
- send : ๊ฐ๋จํ ๋ฌธ์, html ์ฝ๋๋ฅผ ๋ณด๋ผ ์ ์๋ค.
- status : ์๋ต ์ฝ๋๋ฅผ ๋ณด๋ผ ์ ์๋ค.
- sendFile : static ํ์ผ์ ๋ณด๋ผ ์ ์๋ค.
- render : ejs๋ฑ์ ํ ํ๋ฆฟ์ด ์ ์ฉ๋ ํ์ด์ง๋ค์ ๋ ๋๋ง ํด์ค๋ค.
- json : json ๋ฐ์ดํฐ๋ฅผ ๋ด์์ ๋ณด๋ธ๋ค.