Express๋ชจ๋ ๐
http ๋ชจ๋๋ง ์ฌ์ฉํด์ ์น ์๋ฒ๋ฅผ ๊ตฌ์ฑํ๋ฉด ์ง์ ๋ง์ ๊ธฐ๋ฅ์ ๊ฐ๋ฐํด์ผ ํฉ๋๋ค.
์ด ๋ฌธ์ ๋ฅผ ํด๊ฒฐํ๊ธฐ ์ํด ๋ง๋ค์ด์ง ๋ชจ๋์ด ์ต์คํ๋ ์ค ์ ๋๋ค.
์ต์คํ๋ ์ค ๋ชจ๋์ ์ฌ์ฉํ๋ฉด ๊ฐ๋จํ ์ฝ๋๋ก ์น ์๋ฒ์ ๊ธฐ๋ฅ์ ๊ตฌํํ ์ ์๊ณ , ๋ฏธ๋ค์จ์ด์ ๋ผ์ฐํฐ๋ฅผ ์ฌ์ฉํ์ฌ ํธ๋ฆฌํ๊ฒ ์น ์๋ฒ๋ฅผ ๊ตฌ์ฑํ ์ ์์ต๋๋ค.
๋ฏธ๋ค์จ์ด : ์ธ๋ถ์์ ๊ฐ์ ธ์ค๋ ๋ชจ๋ (์ค๊ฐ ์ค๊ฐ ๊ปด์๋ ํ๋ก๊ทธ๋จ ๋ชจ๋์ ์๋ฏธํฉ๋๋ค.)
๋ผ์ฐํฐ : ๋๋ฉ์ธ์ ์ฌ์ฉ์๋ค์๊ฒ ์ค ์ ์๋๋ก ๋ง๋ค์ด์ง ์นดํ ๊ณ ๋ฆฌ ์ ๋๋ค.
ex ) http://www.naver.com/shopping ์ด๋ฐ์์ผ๋ก ๋ค์ shopping ๊ฐ์ ์นดํ ๊ณ ๋ฆฌ๋ฅผ ์๋ฏธ
๋จผ์ ๋ ธ๋ ์ธํ ๋ถํฐ ํด์ผ๋ฉ๋๋ค. ์์
>> ์ด ํ์ ๋ค์ ๋ด์ฉ๋ฌผ์ ํฐ๋ฏธ๋ ์ฐฝ์ ์ ๋ ฅํ๋ฉด ๋๋ค.
1. package.json ํ์ผ ์์ฑ
- ์ธ๋ถ์์ ๊ฐ์ ธ์ค๋ ๋ชจ๋์ ๊ด๋ฆฌํ๊ธฐ ์ํด package.json์ ๋ง๋ญ๋๋ค.
>> npm init -y ๋๋ npm i ๋ง ์ ๋ ฅํด๋ package.json์ด ์ค์น๋๋ค.
2. node_modules ํด๋ ์์ฑ
- npm install express
package.json ํ์ผ ์ด์ด๋ณด๋ฉด
"dependencies": {
"express": "^4.17.1"
}
์ด๋ ๊ฒ express ๊ฐ์ฒด๊ฐ ์์ฑ๋๋ค.
------------------------------------------------------------------------------------------
๋ณ์๋ ๋ชจ๋ ์ ์ธ์ const ๋ ์์๋ก ํ๋ฒ ์ ์ฅํ๋ฉด ๋ชป ๋ฐ๊พผ๋ค๋ ๋ป
์์ ) const port = 3000; ์ด๋ฐ์
๋ฉ์๋ ๐
โ ๋ฉ์๋
use() : ๋ฏธ๋ค์จ์ด ํจ์๋ฅผ ์ฌ์ฉํฉ๋๋ค.
get() : get์ผ๋ก ์ฌ์ฉ์ ์ ๋ณด๋ฅผ ์ ๋ฌ ๋ฐ์ต๋๋ค.
set() : ์๋ฒ ์ค์ ์ ์ํ ์์ฑ์ ์ง์ ํฉ๋๋ค.
redirect() : ์น ํ์ด์ง์ ๊ฒฝ๋ก๋ฅผ ๊ฐ์ ๋ก ์ด๋์ํต๋๋ค. (๊ฐ์ aํ๊ทธ๊ฐ์๊ฑฐ)
send() : ํด๋ผ์ด์ธํธ์ ์๋ต ๋ฐ์ดํฐ๋ฅผ ๋ณด๋
๋๋ค.
์ ๋ฌํ ์ ์๋ ๋ฐ์ดํฐ๋ HTML ๋ฌธ์์ด, Buffer๊ฐ์ฒด, Json๊ฐ์ฒด, json๋ฐฐ์ด ๋ฑ๋ฑ
header() : ํค๋๋ฅผ ํ์ธํฉ๋๋ค.
โ express ์์ฒญ ๊ฐ์ฒด์ ์ถ๊ฐ๋ ํค๋์ ํ๋ผ๋ฏธํฐ
query : ํด๋ผ์ด์ธํธ์์ GET๋ฐฉ์์ผ๋ก ์ ์กํ ์์ฒญ ํ๋ผ๋ฏธํฐ๋ฅผ ํ์ธํฉ๋๋ค.
body : ํด๋ผ์ด์ธํธ์์ POST๋ฐฉ์์ผ๋ก ์ ์กํ ์์ฒญ ํ๋ผ๋ฏธํฐ๋ฅผ ํ์ธํฉ๋๋ค.
(๋จ, body-parser์ ๊ฐ์ ๋ชจ๋์ ์ฌ์ฉํด์ผ ํฉ๋๋ค.)
------------------------------------------------------------------------------------------
POST๋งจ ๋ค์ด๋ก๋ ๐
https://www.postman.com/download
www.postman.com
์ฌ๊ธฐ์ POST๋งจ ๋ค์ด๋ก๋ ํ๋ฉด๋๋ค.
์ POST ๋งจ ์ฐ๋๋ฉด PHP๋ ๊ผญ ํผ์ผ๋ก POST๋ฅผ ์ ๋ฌ ํ๋๋ฐ
๋ ธ๋๋ ์ด๊ฑฐ ์ค์นํ๋ฉด ๊ตณ์ด ํผ์ผ๋ก ์ ๋ฌ ํ์ง ์์๋ ์ ๋ฌ๋๋ค.
์์ด๋๋ ๋น๋ฐ๋ฒํธ๋ ๊ตฌ๊ธ ์ฐ๋๊ฐ๋ฅ
------------------------------------------------------------------------------------------
๋ผ์ฐํฐ์ ๋ฏธ๋ค์จ์ด
- ํ์ด์ง๋ฅผ ๊ตฌ๋ถํด์ค ๋ ์ฌ์ฉํ๋ค.
์ฌ์ฉ์์ ๋ค์ํ ์์ฒญ์ด ๋ค์ด์์ ๋ use() ๋ฉ์๋๋ก ์ค์ ํ ๋ฏธ๋ค์จ์ด๊ฐ ํญ์ ํธ์ถ๋๋ ๋ถํธํ ์ ์ด ์๊ธฐ ๋๋ฌธ์, ๊ทธ ๋ถํธ์ ํด๊ฒฐํ๊ณ ์ ์ฌ์ฉํ๋ ๋ฏธ๋ค์จ์ด๊ฐ Router ๋ฏธ๋ค์จ์ด๋ค.
๋ผ์ฐํฐ ๊ฐ์ฒด ๋ง๋ค๊ธฐ
:: var ๋ผ์ฐํฐ๊ฐ์ฒด๋ช = express.Router();
๋ผ์ฐํฐ๊ฐ์ฑ๋ช .router(์์ฒญํจ์ค).get(์คํ ํ ํจ์);
๋ผ์ฐํฐ๊ฐ์ฑ๋ช .router(์์ฒญํจ์ค).post(์คํ ํ ํจ์);
------------------------------------------------------------------------------------------
ํ ํ๋ฆฟ ์์ง ๋ชจ๋ ๐
โ 1. EJS (Embedded JavaScript)
- EJS ๋ชจ๋์ ํ ํ๋ฆฟ ์์ง ๋ชจ๋์ ๋๋ค.
ํ ํ๋ฆฟ ์์ง ๋ชจ๋์ ํน์ ํ ํ์์ ํ์ผ๋ก๋ถํฐ HTML ํ์ด์ง๋ฅผ ์์ฑํ๋ ๋ชจ๋์ ์๋ฏธํฉ๋๋ค.
EJS ํ์ผ ํ์์ ํน์ ํ๊ทธ
<% ์ฝ๋ %> : ์๋ฐ์คํฌ๋ฆฝํธ ์ฝ๋๋ฅผ ์ ๋ ฅํ๋ ์์ญ์ ์๋ฏธํฉ๋๋ค.
<%= ๊ฐ %> : ๋ฐ์ดํฐ๋ฅผ ์ถ๋ ฅํฉ๋๋ค.
EJS ๋ฐ์ดํฐ๋ฅผ ์ ๋ฌ
- render() : ๋ฉ์๋์ ๋ ๋ฒ์งธ ๋งค๊ฐ๋ณ์์ ์ ๋ฌํ๊ณ ์ ํ๋ ๋ฐ์ดํฐ๋ฅผ ์ ๋ ฅํ์ฌ ์ ๋ฌํฉ๋๋ค.
โ 2. PUG
PUG ๋ฌธ๋ฒ
API Documentation | Jade Language
This page details how to render jade using the JavaScript API in node.js Installation via npm: npm install jade Usage options All API methods take the following set of options: { filename: string – Used in exceptions, and required for relative includes a
jade-lang.com
>> npm install jade
๋ก ์ค์นํ๋ค.
PUG๋ ๋ค์ฌ์ฐ๊ธฐ ์๋ชปํ๋ฉด ์๋ฌ๋๋ค.
์๋ฐ์คํฌ๋ฆฝํธ ์ฌ์ฉํ๋ ค๋ฉด - (ํ์ดํ)์ผ๋ก ์์ํด์ ํ์ดํ์ผ๋ก ๋๋์ผํ๋ค.
์ฃผ์์ ์ธ ์ ์๋ค๋ ์ ์ด ๋ ๋จ์ ์.
------------------------------------------------------------------------------------------
static ๋ฏธ๋ค์จ์ด ๐
- serve_static ๋ชจ๋ ์ฌ์ฉ
>> npm install serve-static
ํน์ ํด๋์ ํ์ผ๋ค์ ํน์ ํจ์ค๋ก ์ ๊ทผํ ์ ์๋๋ก ๋ง๋ค์ด ์ค๋๋ค.
์๋ฅผ ๋ค์ด public ํด๋์ ์๋ ๋ชจ๋ ํ์ผ์ ์น ์๋ฒ์ root ํจ์ค๋ก ์ ๊ทผํ ์ ์๋๋ก ๋ง๋ค ์ ์์ต๋๋ค.
- ํ์ฌ ๋๋ ํ ๋ฆฌ๋ก public ํด๋๋ฅผ ๋งคํํด์ค๋ค.
public(ํด๋๋ช ) > images, wav, mp3(ํด๋์์ ๋ด๊ธด ํ์ผ๋ค)
localhost:3000/public/apple.jpg --> localhost:3000/apple.jpg
์ด๋ ๊ฒ public์ ์๋ตํ๊ณ ๋ฐ๋ก ํ์ผ๋ช ๋ง ์ ๋ ฅํด๋ ๋์จ๋ค.
localhost:3000/public/login.html --> localhost:3000/login.html
'NODE > node.js' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
Nodejs_Day 06 :: mongoose (๋ชฝ๊ตฌ์ค) ๋ชจ๋์ด๋? (0) | 2020.09.17 |
---|---|
Nodejs_Day 05 :: multer ๋ชจ๋ (ํ์ผ ์ ๋ก๋ํ๊ธฐ ์ํ ๋ชจ๋) (0) | 2020.09.16 |
Nodejs_Day 04 :: DB ์ฌ์ฉ NoSQL / MongoDB ํน์ง๊ณผ ์ฌ์ฉ๋ฒ (0) | 2020.09.16 |
Nodejs_Day 03 :: ๋ฐ์ดํฐ JSON / ์ฟ ํค ์ธ์ cookie-session (0) | 2020.09.11 |
Nodejs_Day 02 :: ๋ ธ๋๋ก ๋ฉ์ผ๋ณด๋ด๊ธฐ / ๋ ธ๋๋ชฌ ์ฌ์ฉํ๊ธฐ (0) | 2020.09.11 |