MongoDB7 [NodeJS+Express] 13. formํ๊ทธ์์ PUT, DELETE ์์ฒญํ๊ธฐ & MongoDB ์์ ๋ฌธ๋ฒ + form ํ๊ทธ๋ฅผ ๊ทธ๋๋ก ์ฌ์ฉํ๋ฉด GET, POST ์์ฒญ๋ง ๊ฐ๋ฅํ๋ค. ํ์ง๋ง PUT, DELETE ๋ฑ์ ํ์ฉํ๋ฉด ๋ ์ข์ API์ ๊ธฐ์ค์ ๋ถํฉํ ์ ์์ ๊ฒ์ด๋ค. ์ด๋ฅผ ๊ฐ๋ฅํ๊ฒ ํ๋ ๋ฐฉ๋ฒ์ ๋ํด์ ์์๋ณด์! 1. method-override method-override ๋ผ๋ ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ฅผ ์ด์ฉํ๋ฉด ๊ฐ๋ฅํ๋ค. ์ค์น npm install method-override import //server.js const methodOverride = require('method-override') app.use(methodOverride('_method')) ์๋ฒํ์ผ ์ต์๋จ์ ์ ์ฝ๋๋ฅผ ์์ฑํด์ ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ก๋ถํฐ ํ์ํ ๊ฒ๋ค์ ๊ฐ์ ธ์จ๋ค. 1) form ํ๊ทธ ์์ //edit.ejs ... ?_method=PUT ์ act.. 2023. 10. 15. [NodeJS+Express] 12. ๊ธ ์์ ๊ธฐ๋ฅ ๋ง๋ค๊ธฐ ์ด๋ฒ์๋ ๊ธ์ ์์ ํ๋ ๊ธฐ๋ฅ์ ๊ตฌํํด๋ณด์. 0. ๋ค์ด๊ฐ๊ธฐ์ ๊ธ์ ์์ ํ๋ ๊ณผ์ ์ ์์ฝํด๋ณด๋ฉด ์๋์ ๊ฐ๋ค. 1) ๊ธ ๋ง๋ค ์กด์ฌํ๋ ์์ ๋ฒํผ ํด๋ฆญ 2) ์์ ํ์ด์ง์์ ๊ธ ์์ (์์ ๋์ ํ์ด์ง์ ๋ด์ฉ์ด ๊ธฐ์ ๋์ด์์) 3) ์์ ์๋ฃ ๋ฒํผ ๋๋ฅด๋ฉด DB์ ๋ฐ์ดํฐ ์ ์ก ํ ์์ ์๋ฃ ์ด๋ฌํ ๊ณผ์ ์ ๊ฑฐ์ณ ๊ตฌํ์ ํด๋ณด์! 1. ์์ ๊ธฐ๋ฅ ๋ง๋ค๊ธฐ 1) ์์ ํ์ด์ง (1) ์๋ฒํ์ผ ์ธํ ์์ ํ์ด์ง์ ๋ค์ด๊ฐ๊ฒ ๋๋ฉด ์์ ๋์์ธ ๋ฐ์ดํฐ๊ฐ ๊ธฐ์ ๋์ด์๋ค. //server.js app.get('/edit/:num', async(request, response) => { try { let result = await db.collection('post').findOne({_id : new ObjectId(request.params.. 2023. 10. 15. [NodeJS+Express] 11. URLํ๋ผ๋ฏธํฐ (์์ธํ์ด์ง ๋ง๋ค๊ธฐ) ์ด๋ฒ์๋ URL ํ๋ผ๋ฏธํฐ ๋ฌธ๋ฒ์ ์ด์ฉํด ์์ธํ์ด์ง๋ฅผ ์ ์ํด๋ณด์. 0. ์์ธํ์ด์ง ํํ ์ง๊ธ๊น์ง๋ ๋ฃจํธ('/')์์ ์ง์ ์ ์ํ๋ ํ์ด์ง๋ค์ ์ ์ํ๋ค๋ฉด ์์ธํ์ด์ง๋ /parent/child/... ์ ํํ์ด๋ค. ์ด๊ฒ์ ์ด์ฉํ๋ฉด url์ ์ผ๊ด์ฑ์ ๋ถ์ฌํ ์ ์๊ณ ์กฐ๊ธ ๋ ๊ฐ๊ฒฐํ๊ฒ ์ฌ์ดํธ๋ฅผ ๊ตฌ์ฑํ ์ ์์ ๊ฒ์ด๋ค. ์์ธํ์ด์ง๋ฅผ ๊ตฌํํ๊ธฐ ์ํด์ ์ด๋ป๊ฒ ํด์ผํ ๊น? /page/detail1, /page/detail2, ... ์ด๋ ๊ฒ ํ๋์ฉ ๋ง๋ค์ด๋ ๊ฐ๋ฅํ์ง๋ง, ํ์ด์ง ์๋งํผ ๋ง๋ค์ด์ผํ๋ ๊ฒ์ ๋๋ฌด๋๋ ๋นํจ์จ์ ์ด๋ค. ์ด๊ฒ์ ๊ฐํธํ๊ฒ ๊ตฌํํ๋ ๋ฐฉ๋ฒ์ ์ฌ๋ฟ์์ง๋ง ๊ทธ์ค ํ๋๊ฐ ๋ฐ๋ก URL ํ๋ผ๋ฏธํฐ ๋ฌธ๋ฒ์ด๋ค. 1. URL ํ๋ผ๋ฏธํฐ ๋ฌธ๋ฒ ํํ /๋ถ๋ชจurl/:์์url ์์ ๊ฐ์ด /:์์url ์ด URLํ๋ผ๋ฏธํฐ ๋ฌธ๋ฒ์ด๋ค. ์ด๋ฅผ.. 2023. 10. 15. [NodeJS+Express] 10. ๊ธ ์์ฑ๊ธฐ๋ฅ ๋ง๋ค๊ธฐ (MongoDB ๋ฐ์ดํฐ ์ฝ์ ) ์ด๋ฒ์๋ ๊ธ ์์ฑ ๊ธฐ๋ฅ์ ๋ง๋ค์ด๋ณด์! 0. ์์ํ๊ธฐ์ .. ๋จผ์ ๊ธ ์์ฑ๊ธฐ๋ฅ์ ๋ง๋๋ ค๋ฉด ์ด๋ป๊ฒ ํด์ผํ ๊น? ํด๋ผ์ด์ธํธ๊ฐ ์์ฑํ ๊ธ์ ์๋ฒ์ post ์์ฒญ์ ํ๋ฉด ์๋ฒ๋ ๊ทธ ๋ฐ์ดํฐ๊ฐ ์ฌ๋ฐ๋ฅธ ํ์์ธ์ง ํ์ธ์ ํ ํ, ์ด์์ด ์๋ค๋ฉด DB์ ๋ฑ๋ก์ ํ ์ ์๋๋ก ํด์ฃผ์ด์ผํ ๊ฒ์ด๋ค. (์ ์ ๊ฐ ์ง์ DB๋ฅผ ๊ฑด๋๋ฆฌ๋๋ก ํด์๋ ์๋ ๊ฒ์ด๋ค..) 1. ๊ธ ์์ฑ๊ธฐ๋ฅ ๋ง๋ค๊ธฐ 1) ํ์ผ ์์ฑ ๊ธ์ ์์ฑํ form์ ๋ด์ ํ์ผ์ ํ๋ ์์ฑํ ๋ค ์๋ฒ์ ๋ฑ๋กํด์ค๋ค. //write.ejs ... //server.ejs app.get('/write', (request, response) => { response.render('write.ejs'); }) 2) ํ์ผ ์ค์ ๊ธ์ ์์ฑํด์ ๋ณด๋ด๊ธฐ ์ํ ์ค์ ์ ํด์ฃผ์ด์ผํ๋ค. (1) EJSํ์ผ .. 2023. 10. 14. [NodeJS+Express] 6. EJS๋ก MongoDB ๋ฐ์ดํฐ ๋ฐ์ธ๋ฉํ๊ธฐ ์ ๋ฒ ํฌ์คํธ๊น์ง MongoDB๋ฅผ ์๋ฒ์ ์ฐ๊ฒฐํ๊ณ DB์ ๋ฐ์ดํฐ๋ฅผ ๊บผ๋ด์ค๋ ๊ฒ๊น์ง ์๋ฃํ์๋ค. ์ด๋ฒ์๋ ๊ทธ ๋ฐ์ดํฐ๋ฅผ ์ด์ฉํ์ฌ ํ์ด์ง๋ฅผ ์ ์ํด๋ณด์! 1. EJS (Embedded JavaScipt Template) 1) ๊ฐ๋จํ๊ฒ ์์๋ณด๊ธฐ EJS๋ ํ ํ๋ฆฟ ์์ง์ด๋ค. ํ ํ๋ฆฟ ์์ง์ด๋, DB๋ API์ ๋ฐ์ดํฐ์ ๋ฏธ๋ฆฌ ์ ์๋ ํ ํ๋ฆฟ์ ํฉ์ณ์ ํ๋์ HTML ํ์ผ์ ์ถ๋ ฅํด์ฃผ๋ ๋ชจ๋์ด๋ค. ํนํ EJS๋ JavaScript ๋ฌธ๋ฒ์ ๊ทธ๋๋ก ์ฌ์ฉํ ์ ์์ด์ ํ์ฌ ํ๋ก์ ํธ์ ์์ฃผ ๊ฐํธํ๊ฒ ํ์ฉํ ์ ์๋ค. 2) ์ธํ ํ๊ธฐ (1) ๋ผ์ด๋ธ๋ฌ๋ฆฌ ์ค์น npm install ejs (2) server.js(์๋ฒํ์ผ) ์์ app.set('view engine', 'ejs') ์ ์ฝ๋๋ฅผ ์๋ฒํ์ผ ์๋จ์ ์์ฑํ๋ค. (3) views ๋๋ .. 2023. 10. 8. [NodeJS+Express] 5. MongoDB์์ ๋ฐ์ดํฐ ๊บผ๋ด๊ธฐ ์ด๋ฒ์๋ MongoDB์์ ๋ฐ์ดํฐ๋ฅผ ๊บผ๋ด์๋ณด์! 1. MongoDB์ ๋ฐ์ดํฐ ํํ ๊บผ๋ด์ค๊ธฐ ์ ์ ์ฌ์ดํธ์์ ์ง์ ๋ฐ์ดํฐ๋ฅผ ์ ์ฅํด๋ณด์. ์ธํ ์ด ์๋ฃ๋์๋ค๋ฉด ์ด๋ฌํ ํํ๋ก DB / collection ์ด ๋ฑ๋ก๋์ด์์ ๊ฒ์ด๋ค. [INSERT DOCUMENT]๋ฅผ ๋๋ฌ์ ์๋์ ๊ฐ์ด {Key: Value}๋ฅผ ์ ๋ ฅํด๋ณด์. ์ด๋ ๊ฒ ์ ๋ค์ด๊ฐ๋ ๊ฒ์ ํ์ธํ ์ ์๋ค! ์ ํ ๋ธ๋ก์ด document์ธ ๊ฒ์ด๋ค. โป _id ๋? document ์์ฑ ์ _id ๋ผ๋ ํญ๋ชฉ๋ ํจ๊ป ์์ฑ์ด ๋๋๋ฐ, ์ด๋ document ๊ฐ ๊ตฌ๋ถ์ ์ํ id ์ด๋ค. ์ด๋ ObjectId ๋ผ๋ ๋๋ค ๋ฌธ์๋ฅผ ์ ๋ ฅํ๋๋ฐ ๋ช๊ฐ์ง ํน์ง์ด ์๋ค. 1. ์ค๋ณตX / 2. ๋จผ์ ๋ง๋ค์๋ก ๋ฎ์ ObjectId / 3. ObjectId ๋์ ์์๋ก ์ค์ ๊ฐ๋ฅ(e.g.. 2023. 9. 24. [NodeJS+Express] 4. MongoDB ํ์ฌํด์ฃผ๊ธฐ ์ง๊ธ๊น์ง ์ธํ ํ ์๋ฒ์ DB๋ฅผ ๋ฌ์๋ณด์! 1. DB ํบ์๋ณด๊ธฐ 0) DB๊ฐ ํ์ํ ์ด์ ์น ์๋น์ค๋ฅผ ์ ๊ณตํ๊ธฐ ์ํด์ ์ค์ํ ๊ฒ ์ค ํ๋๋ ์ฌ์ฉ์๋ค์ ๋ฐ์ดํฐ๋ฅผ ๊ด๋ฆฌํ๋ ๊ฒ์ด๋ค. ์ด๋ฅผ ์ํด์ ์ฌ์ฉํ๋ ๊ฒ์ด DataBase(DB)์ด๋ค! ๋ฐ์ดํฐ๋ฒ ์ด์ค๋ฅผ ์ด์ฉํด ๋น ๋ฅธ ๋ฐ์ดํฐ์ ์ ์ถ๋ ฅ๊ณผ ๋์ฉ๋ ๋ณด๊ด์ ํ ์ ์๋ค. 1) DB์ ์ข ๋ฅ DB์ ์ข ๋ฅ์๋ ๊ณ์ธตํ, ๋คํธ์ํฌํ, ๊ด๊ณํ, ๊ฐ์ฒด์งํฅ, ๋น๊ด๊ณํ์ด ์๋ค. ์ด์ค ์ต๊ทผ ๋ง์ด ์ฌ์ฉํ๋ ๊ฒ์ ๊ด๊ณํ๊ณผ ๋น๊ด๊ณํ์ด๋ค. ์ด ๋์ ๋ํด ๊ฐ๋จํ ์์๋ณด์. - ๊ด๊ณํ ๋ฐ์ดํฐ๋ฒ ์ด์ค ์ฝ๊ฒ ์ด๊ฒ์ ์ค๋ช ํ๋ฉด ์์ ๊ณผ ๋น์ทํ๋ค. ํ ์ด๋ธ์ด ์กด์ฌํ๊ณ , ๋ฐ์ดํฐ๋ฅผ ํ ํ์ฉ ์ฐจ๋ก๋ก ๋ณด๊ดํ๋ค. ์ด๋ฅผ ์ฌ์ฉํ๊ธฐ ์ํด์๋ DBMS(๋ฐ์ดํฐ๋ฒ ์ด์ค ๊ด๋ฆฌ์์คํ )๋ฅผ ์ค์นํด์ผํ๋ค. ex) MySQL, Oracle, SQL.. 2023. 9. 24. ์ด์ 1 ๋ค์ ๋ฐ์ํ