๋ชฉ๋ก๐ฉ๐ป ๋ฐฑ์๋(Back-End)/Node js (108)
๐ ๊ณต๋ถํ๋ ์ง์ง์ํ์นด๋ ์ฒ์์ด์ง?
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/7Lmhb/btscQaKBbYZ/dahIkB9ZvsGjQnIKtefu0k/img.png)
๐ Router ๊ฐ์ฒด ์ฌ์ฉํ๊ธฐ ๐ index ์ user ๋ถ๋ฆฌํ๊ธฐ ๐ routes/user.js const express = require("express"); const router = express.Router(); // GET / ๋ผ์ฐํฐ router.get("/", (req, res) => { res.send("Hello, Express"); }); module.exports = router; ๐ routes/user.js const express = require("express"); const router = express.Router(); // GET / user ๋ผ์ฐํฐ router.get("/", (req, res) => { res.send("Hello, User"); }); module.e..
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/1I1fS/btscPSwCrFs/u6tEY16zoX4nwFnhZ3Hw70/img.png)
๐ ๋ค์ํ ๋ฏธ๋ค์จ์ด ๐ dotenv : .env ํ์ผ์ ์ฝ์ด์ process.env๋ก ๋ง๋ ๋ค ๐ morgan : ๋ก๊ทธ ์ถ๋ ฅ ex) combined, common, short, tiny // dev [HTTP ๋ฉ์๋] [์ฃผ์] [HTTP ์ํ ์ฝ๋] [์๋ต ์๋]-[์๋ต ๋ฐ์ดํธ] ๐ static : ์ ์ ์ธ ํ์ผ๋ค์ ์ ๊ณตํ๋ ๋ผ์ฐํฐ ์ญํ : ํจ์์ ์ธ์๋ก ์ ์ ํ์ผ๋ค์ด ๋ด๊ฒจ ์๋ ํด๋๋ฅผ ์ง์ ํ๋ค ๐ body-parser : ์์ฒญ์ ๋ณธ๋ฌธ์ ์๋ ๋ฐ์ดํฐ๋ฅผ ํด์ํด์ req.body ๊ฐ์ฒด๋ก ๋ง๋ค์ด์ฃผ๋ ๋ฏธ๋ค์จ์ด : ํผ ๋ฐ์ดํฐ๋ AJAX ๋ฐ์ดํฐ ์ฒ๋ฆฌ // ์์ฒญ์ ๋ณธ๋ฌธ์ด ๋ฒํผ ๋ฐ์ดํฐ ์ผ ๋ app.use(bodyParser.raw()); // ํ ์คํธ ๋ฐ์ดํฐ์ผ ๋ ํด์ app.use(bodyParser.text()); /..
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/dhWUKd/btsbSNb8AQ3/NHask1Wg4HlkHDRjZWJZ80/img.png)
๐ express ๋ชจ๋๋ก ์๋ฒ ๊ตฌ์ถํ๊ธฐ ๐ app.js // express : http ๋ชจ๋ ๋ด์ฅ๋์ด์ ์๋ฒ์ ์ญํ const express = require("express"); const app = express(); require("dotenv").config(); // ์๋ฒ๊ฐ ์คํ๋ ํฌํธ // app.set("ํค, ๊ฐ") : ๋ฐ์ดํฐ ์ ์ฅ app.set("port", process.env.PORT || 3000); // app.get("์ฃผ์, ๋ผ์ฐํฐ") : ์ฃผ์์ ๋ํ GET ์์ฒญ์ด ์ฌ ๋ ์ด๋ค ๋์ ํ ์ง ์ ๊ธฐ app.get("/", (req, res) => { res.send("Hello express"); }); // HTTP ์น ์๋ฒ์ ๋์ผ app.listen(app.get("port"), (..
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/dr03d4/btsa7t5grrA/7kCxsR7rj4ceQ1F9Dv8FY0/img.png)
๐ ์ฟ ํค : ์ ํจ ๊ธฐ๊ฐ์ด ์์ผ๋ฉฐ name=zerocho ์ ๊ฐ์ด ๋จ์ํ "ํค-๊ฐ" ์ ์ : ์๋ฒ๋ ๋ฏธ๋ฆฌ ํด๋ผ์ด์ธํธ์ ์์ฒญ์๋ฅผ ์ถ์ ํ ๋งํ ์ ๋ณด๋ฅผ ์ฟ ํค๋ก ๋ง๋ค์ด ๋ณด๋ด๊ณ , ๊ทธ ๋ค์์๋ ํด๋ผ์ด์ธํธ๋ก๋ถํฐ ์ฟ ํค๋ฅผ ๋ฐ์ ์์ฒญ์๋ฅผ ํ์ : ์์ฒญ์ ํค๋(Cookie)์ ๋ด๊ฒจ ์ ์ก : ๋ธ๋ผ์ฐ์ ๋ ์๋ต์ ํค๋(Set-Cookie)์ ๋ฐ๋ผ ์ฟ ํค ์ ์ฅ // ๋ฌธ์์ด ํ์์ผ๋ก ์กด์ฌ, ์ฟ ํค ๊ฐ์ ; ๋ก ๊ตฌ๋ถ name=zerocho;year=1995 ๐ ์ฟ ํค๋ก ์ฌ์ฉ์ ์๋ณํ๊ธฐ ๐ฟ cookie2.html ๋ก๊ทธ์ธ ๐ฟ cookie2.js const http = require("http"); const fs = require("fs").promises; const url = require("url"); const qs = require(..
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/dlaoCa/btsar3FEmU4/gghVVLpkMPQiawCAEBHQAK/img.png)
๐ REST (REpresentational State Transfer) : ์๋ฒ์ ์์์ ์ ์ํ๊ณ ์์์ ๋ํ ์ฃผ์๋ฅผ ์ง์ ํ๋ ๋ฐฉ๋ฒ ๐ RESTful : REST๋ฅผ ๋ฐ๋ฅด๋ ์๋ฒ ๐ HTTP ์์ฒญ ๋ฉ์๋ GET : ์๋ฒ ์์์ ๊ฐ์ ธ์ค๊ณ ์ ํ ๋ ์ฌ์ฉ POST : ์๋ฒ์ ์์์ ์๋ก ๋ฑ๋กํ ๋ ์ฌ์ฉ PUT : ์๋ฒ์ ์์์ ์์ฒญ์ ๋ค์ด ์๋ ์์์ผ๋ก ์นํํ ๋ ์ฌ์ฉ PATCH : ์๋ฒ ์์์ ์ผ๋ถ๋ง ์์ ํ ๋ ์ฌ์ฉ DELETE : ์๋ฒ์ ์์์ ์ญ์ ํ ๋ ์ฌ์ฉ OPTIONS : ์์ฒญ์ ํ๊ธฐ ์ ์ ํต์ ์ต์ ์ค๋ช ํ๊ธฐ ์ํด ์ฌ์ฉ ๐ REST๋ก RESTful ํ ์น ์๋ฒ ๋ง๋ค๊ธฐ ๐ฟ about.html Home About ์๊ฐ ํ์ด์ง ์ฌ์ฉ์ ์ด๋ฆ์ ๋ฑ๋กํ์ธ์! ๐ฟ restFront.html Home About ..
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/t82Mf/btsal457tAa/v8yDi4cJG6rmqZGtwGTuf1/img.png)
๐ http ๋ชจ๋๋ก ์น ๋ธ๋ผ์ฐ์ ์์ฒญํ๊ธฐ // http : ์น ๋ธ๋ผ์ฐ์ ์ ์์ฒญ ์ฒ๋ฆฌ const http = require("http"); // ์์ฒญ์ ๋ํ ์ฝ๋ฐฑ ํจ์ http.createServer((req, res) => { res.writeHead(200, { "Content-Type": "text/html; charset=utf-8" }); res.write("Hello node!"); res.end("Hello Server!"); }) .listen(8080, () => { console.log("8080๋ฒ ํฌํธ์์ ์๋ฒ ๋๊ธฐ์ค"); }) ๐ http ๋ชจ๋๋ก ์น ๋ธ๋ผ์ฐ์ ์์ฒญํ๊ธฐ + listening ์ด๋ฒคํธ ๋ฆฌ์ค๋ // http : ์น ๋ธ๋ผ์ฐ์ ์ ์์ฒญ ์ฒ๋ฆฌ const http = require("..
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/bI4DBJ/btr9z9nm45a/c7snPCSjUjU5lPMhNqFRx1/img.png)
=> Node.js E-Commerce App with REST API: Let's Build a Real-Life Example! ๐ท E-Commerce ์ ๊ด๋ จ๋ API ์์ฑํ๊ธฐ ์ฐธ๊ณ : https://github.com/gani0325/2023/tree/main/Web/E-CommerceApp GitHub - gani0325/2023 Contribute to gani0325/2023 development by creating an account on GitHub. github.com ๋๋ฌด ๋ง์ผ๋ ๊นํ๋ธ๋ก ์ฐธ๊ณ ํ๊ฒ ์ผ!!
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/bjhub7/btr9zNEBflL/qKeLay3NUs6VtmHWnhLeo0/img.png)
=> Node.js E-Commerce App with REST API: Let's Build a Real-Life Example! ๐ท uniqid : ๊ณ ์ ํ 16์ง๋ฒ ID ์์ฑ๊ธฐ : ํญ์ ํ์ฌ ์๊ฐ, ํ๋ก์ธ์ค ๋ฐ ์ปดํจํฐ ์ด๋ฆ์ ๊ธฐ๋ฐ์ผ๋ก ๊ณ ์ ํ ID๋ฅผ ์์ฑ npm install uniqid ๐ท uniqid ์ผ๋ก ์ฃผ๋ฌธ cash ๋ฐ๊ธฐ ๐ท ์ฃผ๋ฌธํ๊ฑฐ ์กฐํํ๊ธฐ ๐ท ์ฃผ๋ฌธํ ์ํ ์์ ํ๊ธฐ