: Node.js์์ ์์ฒญ body๋ฅผ ํ์ฑํด์ฃผ๋ ๋ฏธ๋ค์จ์ด๋ก 4 ๊ฐ์ง์ parser๋ฅผ ์ ๊ณตํ๋ค.
npm install
๋ก body-parser ๋ชจ๋์ ์ค์นํ๋ค.npm install body-parser
const express = require('express'); // express ๋ถ๋ฌ์ค๊ธฐ
๊ฐ์ฅ ๋ง์ด ์ฌ์ฉ๋๋ JSON body parser(express.json()
)์ ์ฌ์ฉ๋ฒ์ ์์๋ณด์.
express.json([options])
: express.json()
์ HTTP ์์ฒญ body(payload)์ json ํ์์ ํ
์คํธ๋ฅผ JavaScript ๊ฐ์ฒด๋ก ํ์ฑํด์ค๋ค.
์ต์ ์ ์ฌ์ฉํ์ง ์๊ณ ๊ธฐ๋ณธ๊ฐ์ผ๋ก ์ฌ์ฉํ๋ ๊ฒฝ์ฐ, ์๋์ ๊ฐ์ด ์ฌ์ฉํ๋ฉด ๋๋ค.
app.use(bodyParser.json());
const express = require('express'); // express ๋ถ๋ฌ์ค๊ธฐ
const app = express(); // express ์๋ฒ ์คํ
app.use(express.json()); // JSON body parser๋ฅผ ์ฌ์ฉํ๋ค.
app.post('/', function(request, response){
console.log(request.body); // ์์ฒญ ๋ฐ๋ ์ถ๋ ฅ
});
app.listen(3000); // 3000๋ฒ ํฌํธ์์ ์๋ฒ๋ฅผ ์ฐ๊ฒฐํ๋ค.
โก๏ธ JSON body parser๋ฅผ ์ฌ์ฉํ๋ฉด, ๋ณต์กํ ์ฝ๋๋ฅผ ์์ฑํ ํ์ ์์ด request.body
์ ์์ฒญ์ body๊ฐ ๋ด๊ธด๋ค.
์ต์
์ ์ฌ์ฉํ๊ณ ์ถ๋ค๋ฉด, ์ค๊ดํธ{}
์์ ์ฌ์ฉํ ์ต์
์ ์์ฑํ๋ฉด ๋๋ค.
app.use(express.json({strict: false}));
์ต์ | ๊ธฐ๋ณธ๊ฐ | ์ค๋ช |
---|---|---|
inflate | true | true๋ก ์ค์ ํ๋ฉด ์์ถ๋(deflated) ์์ฒญ body์ ์ฒ๋ฆฌ๋ฅผ ํ์ฉํ๋ค. false๋ก ์ค์ ํ๋ฉด ์์ถ๋ ์์ฒญ body๋ฅผ ์ฒ๋ฆฌ๋ฅผ ๊ฑฐ๋ถํ๋ค. |
limit | 100kb | ์ต๋ ์์ฒญ body์ ํฌ๊ธฐ๋ฅผ ์ ํํ๋ค. ์ซ์์ผ ๊ฒฝ์ฐ ๋ฐ์ดํธ ์๋ฅผ ์ง์ ํ๋ฉฐ, ๋ฌธ์์ด์ผ ๊ฒฝ์ฐ ๊ฐ์ ํ์ฑ์ ์ํด ๋ฐ์ดํธ ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ก ์ ๋ฌ๋๋ค. |
reviver | null | reviver ์ต์
์ JSON.parse()์ ๋ ๋ฒ์งธ ์ธ์๋ก ์ง์ ์ ๋ฌ๋๋ค. ์ด ์ธ์์ ๋ํ ์์ธํ ๋ด์ฉ์ JSON.parse์ ๋ํ MDN ๋ฌธ์์์ ํ์ธํ ์ ์๋ค. |
strict | true | true๋ก ์ค์ ํ๋ฉด ๋ฐฐ์ด๊ณผ ๊ฐ์ฒด๋ง ํ์ฑํ๊ณ , false๋ก ์ค์ ํ๋ฉด JSON.parse()๊ฐ ํ์ฉํ๋ ๋ชจ๋ ํญ๋ชฉ์ ํ์ฉํ๋ค. (์ฆ, ์ซ์, ๋ฌธ์์ด ๋ฑ์ ์์ ํ์ ๋ฐ์ดํฐ๋ ํ์ฑํด์ค๋ค.) |
type | application/json | ๋ฏธ๋ค์จ์ด๊ฐ ํ์ฑํ ๋ฏธ๋์ด์ ํ์
์ ๊ฒฐ์ ํ๋ ์ต์
์ผ๋ก ๋ฌธ์์ด, ๋ฌธ์์ด์ ๋ด์ ๋ฐฐ์ด, ํจ์๋ก ์ง์ ํ ์ ์๋ค. (๊ธฐ๋ณธ๊ฐ application/json : ์์ฒญ ๋ณธ๋ฌธ์ ํ์ ์ด json์ธ ์์ฒญ๋ง ํ์ฑํ๋ค.) |
verify | - | ์ด ์ต์
์ verify(req, res, buf, encoding)์ ํธ์ถํ๋ค. ์ฌ๊ธฐ์ buf๋ ์์ฒญ body์ Buffer์ด๋ฉฐ, endcoding์ ์์ฒญ์ ์ธ์ฝ๋ฉ์ด๋ค. |