๐ ๊ณต๋ถํ๋ ์ง์ง์ํ์นด๋ ์ฒ์์ด์ง?
[E-Commerce App with REST API] (8) Product ์์ฑ(POST) & ์กฐํ(GET) & Product ์์ (PUT) & ์ญ์ (DELETE) & ์กฐํ (GET) ๋ค์ํ๊ฒ ๋ฐ๊ฟ๋ณด๊ธฐ ๋ณธ๋ฌธ
[E-Commerce App with REST API] (8) Product ์์ฑ(POST) & ์กฐํ(GET) & Product ์์ (PUT) & ์ญ์ (DELETE) & ์กฐํ (GET) ๋ค์ํ๊ฒ ๋ฐ๊ฟ๋ณด๊ธฐ
์ง์ง์ํ์นด 2023. 3. 24. 01:59<๋ณธ ๋ธ๋ก๊ทธ๋ Developers Corner ์ ์ ํ๋ธ๋ฅผ ์ฐธ๊ณ ํด์ ๊ณต๋ถํ๋ฉฐ ์์ฑํ์์ต๋๋ค :-)>
=> Node.js E-Commerce App with REST API: Let's Build a Real-Life Example!
๐ท Product Schema & Route & Controller ๊ตฌ์ฑ
๐ท Product Schema๋ฅผ MongoDB์ ์ ์ก (POST)
๐ท Product Schema ์กฐํ (GET)
๐ท Product ์์ (PUT)
slugify : ํ
์คํธ๋ฅผ url ์ฃผ์๋ก ๋ณํํด์ฃผ๋ ๋ผ์ด๋ธ๋ฌ๋ฆฌ
slug : ์ด๋ฏธ ์ป์ ๋ฐ์ดํฐ๋ฅผ ์ฌ์ฉํ์ฌ ์ ํจํ URL์ ์์ฑ (URL๊ณผ ์๋ฏธ์๋ ์ด๋ฆ์ ์ฌ์ฉ)
npm i slugify
โ ์์ ํ๊ณ ์ ํ๋ title์ slug ํํ๋ก ์ง์ด๋ฃ๊ธฐ
req.body.slug = slugify(req.body.title);
โ ์์ ํ๊ธฐ ์ ์ ๊ด๋ฆฌ์์ธ์ง middleware ๊ฒ์ฆํ๊ธฐ
๐ท Product ์ญ์ (DELETE)
์ญ์ ํ๊ณ ์ ํ๋ id๋ฅผ API๋ก ๋๊ฒจ~
๐ท All Product ์กฐํ
โ category๊ฐ ๊ฐ์ ๊ฑฐ ๋ผ๋ฆฌ ์กฐํ
โ ์ฟผ๋ฆฌ๋ฌธ ์์ฑ
replace() ํจ์
: str_text.replace(/์ฐพ์ ๋ฌธ์์ด/gi, "๋ณ๊ฒฝํ ๋ฌธ์์ด")
$gte // ํฌ๊ฑฐ๋ ๊ฐ์ ๊ฐ๋ง ํฌํจ, ์ด์
$gt // ํฐ ๊ฐ๋ง ํฌํจ, ์ด๊ณผ
$lte // ์๊ฑฐ๋ ๊ฐ์ ๊ฐ๋ง ํฌํจ, ์ดํ
$lt // ์์ ๊ฐ๋ง ํฌํจ, ๋ฏธ๋ง
โ JSON ๋ฌธ์์ด <-> Javascript ๊ฐ์ฒด ๋ฐํ
// JSON.stringify : JavaScript ๊ฐ์ด๋ ๊ฐ์ฒด๋ฅผ JSON ๋ฌธ์์ด๋ก ๋ณํ
let queryStr = JSON.stringify(queryObj);
// JSON.parse : JSON ๋ฌธ์์ด์ ์ธ์๋ก ๋ฐ๊ณ ๊ฒฐ๊ณผ๊ฐ์ผ๋ก JavaScript ๊ฐ์ฒด๋ฅผ ๋ฐํ
const query = Product.find(JSON.parse(queryStr));
JSON ๋ฌธ์์ด์์๋ ํค(key)๋ฅผ ๋ํ๋ผ ๋ ๋ฐ๋์ ์๋ฐ์ดํ๋ก ๊ฐ์ธ์ค์ผ ํจ
const str = `{
"name": "ํ๊ธธ๋",
"age": 25,
"married": false,
"family": { "father": "ํํ์", "mother": "์ถ์ฌ" },
"hobbies": ["๋
์", "๋์ "],
"jobs": null
}`;
JavaScript ๊ฐ์ฒด์์๋ ์๋ฐ์ดํ๋ฅผ ๊ผญ ์ฌ์ฉํ ํ์๋ ์์
{
name: "ํ๊ธธ๋",
age: 25,
married: false,
family: {
father: "ํํ์",
mother: "์ถ์ฌ"
},
hobbies: [
"๋
์",
"๋์ "
],
jobs: null
}