โ๏ธ ์์
Express, ๋ฏธ๋ค์จ์ด, req.query, req.params, req.body๋ฅผ ์ด์ฉํ ๊ณผ์ ๋ฅผ ์งํํ๋ค.
๐ ์๊ฒ๋ ๋ถ๋ถ
โ๏ธ Express
- ์น ๋ฐ ๋ชจ๋ฐ์ผ ์ ํ๋ฆฌ์ผ์ด์
์ ์ํ ์ผ๋ จ์ ๊ฐ๋ ฅํ ๊ธฐ๋ฅ์ ์ ๊ณตํ๋ ๊ฐ๊ฒฐํ๊ณ ์ ์ฐํ Node.js ์น ์ ํ๋ฆฌ์ผ์ด์
ํ๋ ์์ํฌ
- Express๋ ํ๋ ์ ์ํฌ ์์ฒด์์ ๋ผ์ฐํฐ ๊ธฐ๋ฅ์ ์ ๊ณตํ๋ค.
๋ผ์ฐํ
- URI(๋๋ ๊ฒฝ๋ก) ๋ฐ ํน์ ํ HTTP ์์ฒญ ๋ฉ์๋์ธ ํน์ ์๋ํฌ์ธํธ์ ๋ํ ํด๋ผ์ด์ธํธ ์์ฒญ์ ์ ํ๋ฆฌ์ผ์ด์
์๋ตํ๋ ๋ฐฉ๋ฒ์ ๊ฒฐ์ ํ๋ ๊ฒ
app.METHOD(PATH, HANDLER)
โ๏ธ Middleware(๋ฏธ๋ค์จ์ด)
- ์๋์ฐจ ๊ณต์ฅ์ ๊ณต์ ๊ณผ ๋น์ทํ๋ค.
- ์ปจ๋ฒ ์ด์ด ๋ฒจํธ ์์ ์ฌ๋ผ๊ฐ ์๋ ์์ฒญ(Request)์ ํ์ํ ๊ธฐ๋ฅ์ ๋ํ๊ฑฐ๋, ๋ฌธ์ ๊ฐ ๋ฐ๊ฒฌ๋ ๋ถ๋ํ์ ๋ฐ์ผ๋ก ๊ฑท์ด๋ด๋ ์ญํ (ํผํฐ๋ง)
- express์ ๊ฐ์ฅ ํฐ ์ฅ์ ์ด๋ค.
- ์์ฃผ ์ฌ์ฉํ๋ ์ํฉ
- POST ์์ฒญ ๋ฑ์ ํฌํจ๋ body(payload)๋ฅผ ๊ตฌ์กฐํํ ๋(์ฝ๊ฒ ์ป์ผ๋ ค๊ณ ํ ๋)
- ๋ชจ๋ ์์ฒญ/์๋ต์ CORS ํค๋๋ฅด ๋ถ์ฌ์ผํ ๋
- ๋ชจ๋ ์์ฒญ์ ๋ํด url์ด๋ ๋ฉ์๋๋ฅผ ํ์ผํ ๋
- ์์ฒญ ํค๋์ ์ฌ์ฉ์ ์ธ์ฆ ์ ๋ณด๊ฐ ๋ด๊ฒจ์๋์ง ํ์ธํ ๋
- Express๋ด์ฅ ๋ฏธ๋ค์จ์ด์ธ
express.json
์ ์ด์ฉํ๋ฉด ์์ฒญ body(payload)๋ฅผ ๋ฐ๋ ์์
์ ๊ฐ๋จํ๊ฒ ์ฒ๋ฆฌํ ์ ์๋ค.
โ๏ธ req.query, req.params, req.body
- Express.js์์ HTTP ์์ฒญ์ ์ฒ๋ฆฌํ๋๋ฐ ์ฌ์ฉ๋๋ ๊ฐ์ฒด ์์ฑ
req.query
- HTTP ์์ฒญ url์ ์ฟผ๋ฆฌ ๋งค๊ฐ๋ณ์์ ๋ํ ๊ฐ์ฒด
?
๋ค์ ํค/๊ฐ ์์ผ๋ก ์ง์ ๋๋ ๋งค๊ฐ ๋ณ์ (/user?name=jieun => req.query.name = 'jieun')
app.get('/:id', (req, res) => {
console.log(req.query)
})
req.params
- HTTP ์์ฒญ url์ ๊ฒฝ๋ก ๋งค๊ฐ๋ณ์์ ๋ํ ๊ฐ์ฒด
- url ๊ฒฝ๋ก์ ํน์ ๋ถ๋ถ์ ์ง์ ๋๋ ๋งค๊ฐ๋ณ์ (/user/:id => req.params.id = id ๋ถ๋ถ์ ๋ํ ๊ฐ)
app.get('/:id', (req, res) => {
console.log(req.params)
})
req.body
- HTTP POST ์์ฒญ ๋ณธ๋ฌธ์ ๋ํ ๊ฐ์ฒด
- POST ์์ฒญ์์ ์ ๋ฌ๋๋ ๋ฐ์ดํฐ๋ฅผ ํฌํจํ๋ ๋ถ๋ถ
- ๋ค์ํ ๋ฐ์ดํฐ ํ์(JSON, URL ์ด์ฝ๋ฉ ๋ฑ)์ ๋ํด ์๋์ผ๋ก ๊ตฌ๋ฌธ ๋ถ์
โ๏ธ ๋ง์น๋ฉฐ
์ด๋ก ๋ฑ์ ๋ณด๋ฉด ์~ ์ด๋์ ์ด๋ ๊ฒ ์ฌ์ฉํ๋ ๊ตฌ๋ ํ๊ณ ์ดํด๊ฐ ๋๋ ๋ฏ ์ถ์ด๋
๋ง์ ์ฝ๋๋ก ์์ฑํ๋ ค๊ณ ํ๋ฉด ๋จธ๋ฆฌ๊ฐ ํ
ํ
๋น๋ค..
์ ๋๋ก ์ดํดํ๋ ค๋ฉด ๊ธ๋ก๋ง ์์ฑํ๋๊ฒ ์๋ ์ฝ๋๋ฅผ ๋ฐ๋ผ ์น๋ฉด์
์ ์ด๋ ๊ฒ ์์ฑํ๊ณ ์ด๋ฌํ ์ํฉ์ ์ด๋ ๊ฒ ์์ฑํ๋์ง๋ฅผ ์์์ผ ํ ๊ฑฐ ๊ฐ๋ค.
์ฐธ๊ณ
https://expressjs.com/ko/starter/basic-routing.html
chat gpt