์ด๋ฒ์๋ ๋ค๋ฅธ ๋ฐฉ์์ ์๋ฒ ์์ฒญ ์ฒ๋ฆฌ๋ฅผ ์ํด ์ฝ๋๋ฅผ ์์ ํ๋ค.
(์์ง๊น์ง ๋ญ๊ฐ ๋ค๋ฅธ์ง ์ ๋ชจ๋ฅด๊ฒ ๋ค. ๋ ๊ณต๋ถํด์ผ ํ ๋ฏ...)
์ผ๋จ ์์ ๋ ์ฝ๋ ์ ์ฒด์ด๋ค.
์์ ์ง ์ฝ๋์ ๋ค๋ฅธ ์ ์, ์์ ์ฝ๋๋
app = http.createServer(์ฝ๋ฐฑ ํจ์)
์ด๋ ๊ฒ ๋์ด์์๋๋ฐ,
์ฌ๊ธฐ์๋ ์ผ๋จ
app = http.createServer();
app.on("request", (req, res) => {...});
ํ๊ณ on์ด๋ผ๋ ๋ฉ์๋ ์์ ์ฝ๋ฐฑํจ์๋ฅผ ์ ์ํ๊ณ ,
์๋ต์ ๋ซ์ผ๋ฉด์ html ์ฝํ ์ธ ๋ฅผ ๋ณด๋ธ๋ค.
res.end(responseMessage);
์ด๋ ๊ฒ.
์์ฝ๋๋ฅผ ์ด๋ ๊ฒ ์คํ์์ผ ๋ณด๋ฉด, ํฌํธ ๋ฒํธ๋ ์ฝ์์ ์ ๋จ๊ณ ,
์น ๋ธ๋ผ์ฐ์ ์๋ ์ด๋ ๊ฒ ์ ๋ฌ๋ค.
์ฌ๊ธฐ์ Routing ์ด๋ผ๋ ๊ฐ๋ ์ด ๋์จ๋ค.
๋ผ์ฐํ ์ ์ ํ๋ฆฌ์ผ์ด์ ์ด ์์ฒญํ๋ ํด๋ผ์ด์ธํธ์ ์ด๋ป๊ฒ ๋ฐ์ํ๋์ง ์ ํ๋ ๋ฐฉ์์ด๋ค.
๊ฐ ์์ฒญ ๊ฐ์ฒด๋ url ์์ฑ์ ๊ฐ์ง๊ณ ์์ผ๋ฉฐ, req.url ์์ฑ์ ํตํด ํด๋ผ์ด์ธํธ๊ฐ ์ด๋ค url ์์ฒญ์ ํ๊ณ ์๋์ง ํ์ ํ ์ ์๋ค.
์ด๋ฅผ ํ์ธํ๊ธฐ ์ํด app.on ๋ฉ์๋ ์ฝ๋ ๋ธ๋ก์ ๋ฐ์ ๋์์๋ ์ธ์ค์ ์ฝ๋๋ฅผ ์ถ๊ฐํ๋ค.
์ด๋ ๊ฒ ์ธ์ค์ ์ถ๊ฐํ๊ณ ๋์ ํ๋ก๊ทธ๋จ์ ์คํํด๋ณด๋ฉด,
์์์๋ถํฐ http ๋ฉ์๋ ์ข ๋ฅ(GET), header ์ ๋ณด, ์์ฒญ๋ url ๋ก๊ทธ(/)๊ฐ ์ฐจ๋ก๋ก ์ ์ถ๋ ฅ๋๋ค.
์์ฒญ์ ์ผ๋ถ ๊ฐ์ฒด๋ ๋ค๋ฅธ ์ค์ฒฉ ๊ฐ์ฒด๋ฅผ ํฌํจํ ์ ์์ผ๋ฏ๋ก, JSON.stingify๋ผ๋ ๊ฐ์ฒด๋ฅผ ์ฌ์ฉํด ๊ฐ์ฒด๋ฅผ ๋ ์ฝ๊ธฐ ์ฌ์ด ๋ฌธ์์ด๋ก ๋ณํํ ์ ์๋ค. ์ด ํจ์๋ JavaScript ๊ฐ์ฒด๋ฅผ ์ธ์๋ก ์ฌ์ฉํด ๋ฌธ์์ด์ ๋ฐํํ๋ค.
๊ทธ๋์ ์ด๋ ๊ฒ ๋ฌธ์์ด๋ก ๋ฐํํด์ฃผ๋ ํจ์ getJSONString์ ์ ์ธํ๊ณ , ์ฝ์์ ์ถ๋ ฅํ๋ ์ถ๋ ฅ๋ฌธ๋ ๊ทธ์ ๋ง๊ฒ ๋ฐ๊ฟ์ฃผ์๋ค.
๊ทธ๋ ๊ฒ ํด์ ์คํํด๋ณด๋ฉด,
์ด๋ ๊ฒ ์ ๋์จ๋ค. ์ฌ์ค ์๊น๋ ๋ญ๊ฐ ๋ค๋ฅธ์ง ๋ชจ๋ฅด๊ฒ ๋ค.
์ด ๋ฐ์ ์ฑ ์์ ์ํจ๊ฒ localhost:3000/test/test2 ์ฒ๋ผ ๋ค๋ฅธ URL์ ํ๋ฒ ์ ๋ ฅํด๋ณด๋ฉด ์น ๋ธ๋ผ์ฐ์ ์์๋ ๋๊ฐ์ ํ ์คํธ๋ฅผ ๋ณด์ฌ์ฃผ์ง๋ง ์ฝ์์์๋ ์ ๋ ฅํ URL์ ์ถ๋ ฅํ ๊ฒ์ด๋ผ๊ณ ํด์ ํด๋ดค๋ค.
๊ทธ๋ฌ๋๋ ์ฝ์์์๋ ์ ๋ ฅํ๋๋ก
์ด๋ ๊ฒ ์ ๋์๋ค.
์ด์ POST ๋ฐฉ์์ผ ๋์ ์์ฒญ ์ฒ๋ฆฌ ์ฝ๋๋ฅผ ์์ฑํ๋ค.
๋จผ์ POST ๋ฐฉ์์ ๋ฐ์ดํฐ ์ฒ๋ฆฌ๊ฐ ์ด๋ป๊ฒ ์ด๋ฃจ์ด์ง๋ ์ง๋ฅผ ์ดํด๋ณด๋ฉด,
๋๊ตฐ๊ฐ ์๋ฒ์ POST ์์ฒญ์ ํ๋ ๊ฒฝ์ฐ, ๊ทธ POST์ ๋ด์ฉ์ ์์ฒญํ ๋ณธ๋ฌธ์ ์ ์ฅ๋๋ค.
์๋ฒ๊ฐ ์ ์ก๋๋ ๋ฐ์ดํฐ์ ์์ ์์ง ๋ชปํ๊ธฐ ๋๋ฌธ์ ๊ฒ์ ๋ ๋ฐ์ดํฐ๋ ๋ฐ์ดํฐ ์ฒญํฌ(chunk)๋ฅผ ํตํด http ์๋ฒ๋ก ๋ค์ด์จ๋ค.
๊ทธ๋์ ์๋ก์ด ๋ฐฐ์ด์ ์ ์ํ๊ณ ์๋ฒ์ ์ฒญํฌ๊ฐ ๋์ฐฉํ ๋ ์์ฐจ์ ์ผ๋ก ๋ฐ์ดํฐ ์ฒญํฌ๋ฅผ ์ถ๊ฐํด์ผ ํ๋ค.
๋ชจ๋ ๋ฐ์ดํฐ ์ฒญํฌ๊ฐ ๋ชจ์์ง๋ฉด ๋จ์ผ ๋ฐ์ดํฐ ํญ๋ชฉ์ผ๋ก ๋ค๋ฃฐ ์ ์๋ค.
์์ ์ฝ๋์ ์ถ๊ฐํ ๊ฒ ์ฒ๋ผ ๋ฐฐ์ด์ body๋ก ๋ง๋ค์ด์ง๊ณ ์ฐธ์กฐ๋๋ฉฐ, ์์ฒญ ๋ฐ์ดํฐ๊ฐ ์์ ๋ ๋๋ง๋ค ๋ ๋ค๋ฅธ ์ฝ๋ฐฑ ํจ์์์ ์ฒ๋ฆฌํ๋ค.
์์ ๋ ๋ฐ์ดํฐ๋ body ๋ฐฐ์ด์ ์ถ๊ฐ๋๋ค.
๋ฐ์ดํฐ ์ ์ก์ด ์๋ฃ๋๋ฉด ์ธ ๋ฒ์งธ ์ฝ๋ฐฑ ํจ์์์ ์ฝ๋๋ฅผ ์คํํ๋ค.
body ๋ฐฐ์ด์ ํ ์คํธ ๋ฌธ์์ด๋ก ๋ฐ๋๊ณ ์์ฒญ ๋ด์ฉ์ ์ฝ์์ ๊ธฐ๋กํ๋ค.
์์ง ๋ฐ์ดํฐ ์ ์ถ์ ์ํ ํผ์ ๋ง๋ค์ง ์์๊ธฐ ๋๋ฌธ์ curl ๋ช ๋ น์ ์ฌ์ฉํด์ ์๋ฒ๋ก POST ์์ฒญ์ ๋ณด๋ด๋ณด์๋ค.
๋จผ์ curl ๋ช ๋ น์ ์ฌ์ฉํ๊ธฐ ์ํด์,
https://chocolatey.org/install
Installing Chocolatey
Chocolatey is software management automation for Windows that wraps installers, executables, zips, and scripts into compiled packages. Chocolatey integrates w/SCCM, Puppet, Chef, etc. Chocolatey is trusted by businesses to manage software deployments.
chocolatey.org
์ฌ๊ธฐ์ Chocolatey๋ฅผ ๋ค์ด๋ก๋ํด์ ์ค์นํ๋ค.
์๋ ํฐ๋ฏธ๋์์ ๋จผ์ ํ๋ก๊ทธ๋จ์ ์คํ์์ผ ๋์ ํ,
๋ ๋ค๋ฅธ ํฐ๋ฏธ๋์ ๋์ ๋ค์๊ณผ ๊ฐ์ด ๋ช ๋ น์ ์ ๋ ฅํ๋ค.
์ ๋ ๊ฒ ์์ฒญ ๊ฒฐ๊ณผ๊ฐ ์ ์ถ๋ ฅ๋๊ณ ,
์๋ ํฐ๋ฏธ๋์๋
์ด๋ ๊ฒ ์์ฒญ ๋ฐฉ์๊ณผ ์์ฒญ ๋ฐ์ดํฐ ๋ด์ฉ์ ํ์ธํ ์ ์์๋ค.
๋์
'โ๏ธ 21-2 IPP > Node.js study' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
Node.js - 7 ๋ผ์ฐํธ(2) (0) | 2021.10.15 |
---|---|
Node.js - 6 ๋ผ์ฐํธ(1) (0) | 2021.10.15 |
Node.js - 4 http ๋ชจ๋ (0) | 2021.10.14 |
Node.js - 3 ๋ณด๊ฐ๋ฉ์์ง, npm, exports๋ฑ (0) | 2021.10.13 |
Node.js - 2 ์ค์ , ๊ฐ๋จํ ์ค์ต (0) | 2021.10.12 |
๋๊ธ