728x90
Express.js๋ Node.js ํ๊ฒฝ์์ ์ฌ์ฉ๋๋ ์ธ๊ธฐ ์๋ ์น ํ๋ ์์ํฌ. ๊ฐ๋จํ ์๋ฒ ์ค์ ๊ณผ API ์๋ํฌ์ธํธ ์ ์๋ฅผ ์ฝ๊ฒ ํ ์ ์๋ค.
https://www.npmjs.com/package/express
express
Fast, unopinionated, minimalist web framework. Latest version: 4.19.2, last published: 5 months ago. Start using express in your project by running `npm i express`. There are 85293 other projects in the npm registry using express.
www.npmjs.com
npm i express
Express ์๋ฒ ์ค์
const express = require('express')
const app = express()
app.get('/', function (req, res) {
res.send('Hello World')
})
app.listen(3000)
express
๋ชจ๋์ ๋ถ๋ฌ์ ์ฑ ์ธ์คํด์ค๋ฅผ ์์ฑapp.listen
์ผ๋ก ์๋ฒ ์คํ. ์ฌ๊ธฐ์๋ 3000๋ฒ ํฌํธ๋ฅผ ์ฌ์ฉ- res.send๋ ์ ๋ฌ๋ ๋ฐ์ดํฐ ํ์ ์ ๋ฐ๋ผ ์๋ต์ Content-Type์ ์๋์ผ๋ก ์ค์ ํจ.
๋์ ๋ผ์ฐํธ์ ๋งค๊ฐ๋ณ์
๋งค๊ฐ๋ณ์๋ฅผ ํฌํจํ ๊ฒฝ๋ก ์ฒ๋ฆฌ
- "/products/:n"์์
:n
์ ๋์ ๋งค๊ฐ๋ณ์.req.params.n
์ผ๋ก ์ ๊ทผ ๊ฐ๋ฅ. - res.json์ JavaScript ๊ฐ์ฒด๋ ๋ฐฐ์ด์ JSON ํ์์ผ๋ก ๋ณํ ํ, Content-Type์ application/json์ผ๋ก ์ค์ ํ์ฌ ์๋ตํจ.
app.get("/products/:n", function (req, res) {
console.log(req.params.n);
res.json({
product: req.params.n,
});
});
- ๋ฏธ๋ฆฌ ์ ์๋ ๊ฐ์ฒด๋ฅผ JSON์ผ๋ก ์๋ต
let book = {
title: "Node.js",
price: 25.5,
description: "Node.js is a JavaScript runtime built on Chrome's V8 JavaScript engine.",
};
app.get("/book", function (req, res) {
res.json(book);
});
HTTP ๋ชจ๋๊ณผ Express.js ๋น๊ต
1. ์ฝ๋ ์์ฑ์ ๊ฐ๊ฒฐํจ
- HTTP ๋ชจ๋: Node.js์ ๋ด์ฅ๋ ๊ธฐ๋ณธ ๋ชจ๋๋ก, ์๋ฒ๋ฅผ ์ค์ ํ๊ณ ๋ผ์ฐํ ์ ์ง์ ๊ตฌํํด์ผ ํจ. ๋ณต์กํ ๊ฒฝ๋ก ์ฒ๋ฆฌ๋ ์์ฒญ๋ณ ๋ถ๊ธฐ ์ฒ๋ฆฌ๊ฐ ํ์ํ ๋ ์ฝ๋๊ฐ ๊ธธ์ด์ง๊ณ ๋ณต์กํด์ง.
- Express.js: ๋ผ์ฐํ ๊ณผ ๋ฏธ๋ค์จ์ด๊ฐ ๋ด์ฅ๋ ํ๋ ์์ํฌ๋ก, ๊ฐ๊ฒฐํ๊ณ ์ง๊ด์ ์ธ ์ฝ๋ ์์ฑ์ด ๊ฐ๋ฅํจ. ๋ช ์ค์ ์ฝ๋๋ก ์๋ฒ ์ค์ ๋ฐ ๋ค์ํ ์์ฒญ ์ฒ๋ฆฌ ๊ฐ๋ฅ.
2. ๋ฏธ๋ค์จ์ด ์ง์
- HTTP ๋ชจ๋: ๋ฏธ๋ค์จ์ด ๊ธฐ๋ฅ์ด ๊ธฐ๋ณธ์ ์ผ๋ก ์ ๊ณต๋์ง ์์. ์์ฒญ๊ณผ ์๋ต ์ฌ์ด์ ์ฒ๋ฆฌ ๋ก์ง์ ์ง์ ๊ตฌํํด์ผ ํจ.
- Express.js: ๋ฏธ๋ค์จ์ด๋ฅผ ํตํด ์์ฒญ ์ฒ๋ฆฌ์ ๊ฐ ๋จ๊ณ์์ ์ฝ๊ฒ ๊ธฐ๋ฅ์ ์ถ๊ฐํ๊ฑฐ๋ ์์ ํ ์ ์์. ์๋ฅผ ๋ค์ด, ๋ก๊ทธ ๊ธฐ๋ก, ์ธ์ฆ ์ฒ๋ฆฌ, ๋ฐ์ดํฐ ํ์ฑ ๋ฑ์ด ๊ฐ๋จํ๊ฒ ๊ตฌํ ๊ฐ๋ฅ.
3. ๋ผ์ฐํ ๊ธฐ๋ฅ
- HTTP ๋ชจ๋: ๊ฒฝ๋ก์ ๋ฉ์๋๋ณ๋ก ์์ฒญ์ ์๋์ผ๋ก ๋ถ๊ธฐ ์ฒ๋ฆฌํด์ผ ํจ. ๋ณต์กํ ๋ผ์ฐํ ๋ก์ง์ด ํ์ํ ๊ฒฝ์ฐ ์ฝ๋๊ฐ ๋ณต์กํด์ง.
- Express.js: ๋ผ์ฐํ ์ด ๋ด์ฅ๋์ด ์์ด ๊ฒฝ๋ก์ ๋ฉ์๋๋ฅผ ์ฝ๊ฒ ์ ์ํ๊ณ ๊ด๋ฆฌํ ์ ์์. ๋์ ๊ฒฝ๋ก์ URL ํ๋ผ๋ฏธํฐ ์ฒ๋ฆฌ๋ ๊ฐํธํ๊ฒ ๊ตฌํ ๊ฐ๋ฅ.
4. ํ์ฅ์ฑ
- HTTP ๋ชจ๋: ๊ธฐ๋ณธ ๊ธฐ๋ฅ๋ง ์ ๊ณตํ๋ฉฐ, ์ถ๊ฐ์ ์ธ ๊ธฐ๋ฅ์ ๊ตฌํํ๋ ค๋ฉด ์ธ๋ถ ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ ์ถ๊ฐ ์ฝ๋๊ฐ ํ์ํจ.
- Express.js: ๋ค์ํ ํ๋ฌ๊ทธ์ธ๊ณผ ๋ฏธ๋ค์จ์ด๋ฅผ ํตํด ๊ธฐ๋ฅ ํ์ฅ์ด ์ฉ์ดํจ. ํ ํ๋ฆฟ ์์ง, ์ ์ ํ์ผ ์ ๊ณต, ๋ฐ์ดํฐ๋ฒ ์ด์ค ์ฐ๊ฒฐ ๋ฑ ๋ค์ํ ๊ธฐ๋ฅ์ ์์ฝ๊ฒ ์ถ๊ฐํ ์ ์์.
5. ์ฌ์ฉ ์ฉ๋
- HTTP ๋ชจ๋: ๊ฐ๋จํ ์๋ฒ๋ ํน์ ํ ๊ธฐ๋ฅ์ด ํ์ํ ๊ฒฝ์ฐ ์ ํฉ.
- Express.js: ๋ณต์กํ ์น ์ ํ๋ฆฌ์ผ์ด์ ์ด๋ API ์๋ฒ๋ฅผ ๊ตฌ์ถํ ๋ ์ ํฉ.
๋ฏธ๋ค์จ์ด(Middleware): Express.js์ ๊ฐ์ ์น ํ๋ ์์ํฌ์์ ์์ฒญ(req)์ ์๋ต(res) ์ฌ์ด์ ์คํ๋๋ ํจ์.
์์ฒญ๊ณผ ์๋ต์ ํ๋ฆ์ ์ ์ดํ๊ณ , ๋ค์ํ ์์ ์ ์ํํ ์ ์๋๋ก ๋์์ค๋ค.
ex) ์์ฒญ ์ฒ๋ฆฌ ๋ฐ ๋ณํ, ๋ก๊ทธ ๊ธฐ๋ก, ์ธ์ฆ ๋ฐ ๊ถํ ๋ถ์ฌ, ์ ์ ํ์ผ ์ ๊ณต, ๋ผ์ฐํ , ์๋ฌ ์ฒ๋ฆฌ ๋ฑ.
728x90