Express๋ ๊ธฐ์กด Node.js ์ฝ๋์ ๊ฐ๋ ์ฑ๊ณผ ํ์ฅ์ฑ์ด ๋ง์ด ๋จ์ด์ง๋ค๊ณ ์๊ฐํ์ฌ ๋ง๋ค์ด์ง ์น ์๋ฒ ํ๋ ์์ํฌ์ ๋๋ค. Express๋ http ๋ชจ๋์ ์์ฒญ๊ณผ ์๋ต ๊ฐ์ฒด์ ์ถ๊ฐ ๊ธฐ๋ฅ๋ค์ ๋ถ์ฌํ์ต๋๋ค. ๋ ๋ผ์ฐํฐ๋ก ์ฝ๋๋ฅผ ๋ถ๋ฆฌํ๊ธฐ ์ฌ์ ์ ์ง๋ณด์ ๋ํ ์ฉ์ดํฉ๋๋ค.
Express ์ธ์๋ koa๋ hapi ๊ฐ์ ์น ์๋ฒ ํ๋ ์์ํฌ๊ฐ ์์ง๋ง ๋ค์ ์ฌ์ง๊ณผ ๊ฐ์ด Express๊ฐ ์๋์ ์ผ๋ก ์ธ๊ธฐ๊ฐ ๋ง์ต๋๋ค.
๋ฌผ๋ก ์ฌ์ฉ์๊ฐ ๋ง๋ค๊ณ ํญ์ ์ข์๊ฑด ์๋์ง๋ง, ์ฌ์ฉ์๊ฐ ๋ง์ ๊ฒ์๋ ์ด์ ๊ฐ ์์ต๋๋ค. ์ฌ์ฉ์๊ฐ ๋ง์ ์๋ก ๋ฒ๊ทธ๊ฐ ์ ๊ณ , ๊ธฐ๋ฅ ์ถ๊ฐ๋ ์ ์ง๋ณด์๋ ํ๋ฐ์ด ๋๊ธฐ ๋๋ฌธ์ ๋๋ค.
Express-generator๋ Express ํ๊ฒฝ์ ๊ฐ๋จํ๊ฒ ๊ตฌ์ถํด์ฃผ๋ npm์ ๋๋ค. ๋ฐ๋ผ์ ์ฌ์ฉํ๋ฉด ์ฝ๊ฒ Node.js ๊ฐ๋ฐ์ ํ ์ ์์ต๋๋ค.
npm๋ฅผ ์ด์ฉํ์ฌ express-generator ์ค์นํ๊ธฐ
1 ."npm i -g express-generator" ์ ํฐ๋ฏธ๋์ ์ ๋ ฅํ์ฌ ์คํ์์ผ์ค๋๋ค.
- npm i ๋์ install๋ ๊ฐ๋ฅํฉ๋๋ค.
- '-g' ๋ ๊ธ๋ก๋ฒ์ ์ฝ์๋ก ํด๋์ ๊ตญํ๋ ๊ฒ์ด ์๋๋ผ ์ ์ญ์ผ๋ก ์ค์นํ๋ ๋ฐฉ๋ฒ์
๋๋ค.
๋ง์ฝ ์ ์ญ ์ค์น๋ฅผ ์์น ์์ผ๋ฉด '-g' ๋์ '-save'๋ก ํ์๋ฉด ๋ฉ๋๋ค.
2. "express [์ค์นํ ํด๋์ด๋ฆ] --view=pug" ์ ํฐ๋ฏธ๋์ ์ ๋ ฅํ์ฌ ์คํ์์ผ์ค๋๋ค.
- ํด๋ ์ด๋ฆ์ด test ๋ผ๋ฉด "express test --view=pug"๋ก ์ ๋ ฅํ์๋ฉด ๋ฉ๋๋ค.
- Node.js์ ๋ํ์ ์ธ ํ
ํ๋ฆฟ ์์ง์ผ๋ก๋ ejs์ pug๊ฐ ์๋๋ฐ --view๋ฅผ
pug๋ก ํ๊ฒ๋๋ฉด ํ ํ๋ฆฟ ์์ง์ผ๋ก pug๋ฅผ ์ฌ์ฉํ๊ฒ ๋ฉ๋๋ค. - jade๊ฐ ์๋กญ๊ฒ ๊ฐ๋ช ๋ ๊ฒ์ด pug์ ๋๋ค.(pug์ ๊ดํ๊ธ์ ์ถํ ์ฌ๋ฆฌ๊ฒ ์ต๋๋ค.)
1, 2๋ฒ๊น์ง ์งํํ์๋ฉด ๋ค์๊ณผ ๊ฐ์ ํด๋๊ฐ ์์ฑ์ด ๋ฉ๋๋ค. ์ ๊ฐ์ ๊ฒฝ์ฐ "express express_test --view=pug"๋ก ํ์๊ธฐ
๋๋ฌธ์ express_test๋ผ๋ ํด๋๊ฐ ์์ฑ์ด ๋์์ต๋๋ค.
3. ์์ฑํ ํด๋๋ก cd ๋ช ๋ น์ด๋ฅผ ์ฌ์ฉํ์ฌ ์ด๋ํฉ๋๋ค. ์์ฑํ ํด๋ ์ด๋ํ ํ
"npm i"๋ฅผ ์ ๋ ฅํ์ฌ ํ์ํ npm ํ์ผ๋ค์ ์ค์น ํด์ค๋๋ค.
โป์ฌ๊ธฐ์ ์ ๊น!!
{
"name": "express-test",
"version": "0.0.0",
"private": true,
"scripts": {
"start": "node ./bin/www"
},
"dependencies": {
"cookie-parser": "~1.4.4",
"debug": "~2.6.9",
"express": "~4.16.1",
"http-errors": "~1.6.3",
"morgan": "~1.9.1",
"pug": "2.0.0-beta11"
}
}
"npm i"๋ฅผ ํด์ฃผ๋ ์ด์ ๋ package.json๋ผ๋ json ํ์ผ์ dependecies ๊ฐ์ฒด ์์ ์๋ npm๋ค์ ์ค์นํด์ฃผ๊ธฐ ์ํจ์ ๋๋ค.
์ผ์ผ์ด npm i express ์ด๋ฐ์์ผ๋ก ์ค์นํ ํ์์์ด "npm i" ๋ช ๋ น์ด ํ๋๋ก dependecies ๊ฐ์ฒด ์์ ์๋ ๋ชจ๋ npm์ ์๋์ผ๋ก ์ค์นํ ์ ์๋ ๊ฒ์ ๋๋ค.
์ถํ Github์ Node.js ํ๋ก์ ํธ๋ฅผ ์ฌ๋ฆด๋ ํด๋น ํ๋ก์ ํธ ๋ด์ ๋ชจ๋ npm ํ์ผ๋ค์ด ๊ฐ์ด ์ปค๋ฐ ๋๋๋ฐ ์ด๋ด ๊ฒฝ์ฐ ์๋นํ ๋นํจ์จ์ ์ด๊ธฐ ๋๋ฌธ์ gitignore๋ก npm ํ์ผ๋ค์ ์ฌ๋ผ๊ฐ์ง ์๋๋ก ํฉ๋๋ค. ํ์ง๋ง package.json ํ์ผ์ ์ปค๋ฐ์ด ๋๊ธฐ๋๋ฌธ์ package.json ํ์ผ๋ง ์๋ค๋ฉด ํด๋น ํ๋ก์ ํธ์ ํ์ํ ๋ชจ๋ npm์ ์ค์นํ ์ ์๊ฒ๋๋ ๊ฒ์ ๋๋ค.
4. "npm i" ๋ช ๋ น์ด๋ฅผ ์ ๋ ฅํ๋ฉด node_modules๋ผ๋ ํด๋๊ฐ ์๋กญ๊ฒ ์๊ฒจ๋๋๋ฐ ์ด๊ณณ์ npm์ ํ์ํ ๋ชจ๋ ํ์ผ์ด ์ค์น๋ฉ๋๋ค.
(๋ฐ๋ผ์ gitignore์๋ node_modules์ ์ ๋ ฅํ์ฌ node_modules๊ฐ ์ปค๋ฐ๋์ง ์๊ฒ ํฉ๋๋ค. ์๋๋ Node.js ํ๋ก์ ํธ์ ์ปค๋ฐ ํ์ผ๋ค์ธ๋ฐ node_modules ํด๋๊ฐ ์๋ ๊ฒ์ด ๋ณด์ด์ฃ ?)
5. ๋ง์ง๋ง์ผ๋ก "npm start" ๋ช ๋ น์ด๋ฅผ ์ ๋ ฅํ์ฌ ๊ตฌ์ถ๋ ๋ก์ปฌ ์๋ฒ์ ์ ์ํ์๋ฉด ๋ฉ๋๋ค.
๊ทผ๋ฐ ์ฐ๋ฆฌ๋ ๋ก์ปฌ ์๋ฒ์ ํฌํธ๋ฅผ ๋ฌด์์ผ๋ก ์ค์ ํด์คฌ๋์ง ๋ชฐ๋ผ์. ํฌํธ ๋ฒํธ๋ฅผ ์ค์ ํด์ฃผ๊ธฐ ์ํด์ /bin/www.js ๋ฅผ ์ด์ด์ค๋๋ค.
๋ค์ด๊ฐ์๋ฉด ๋ญ์ง ๋ชจ๋ฅผ ์ฝ๋๊ฐ ๋ง์ด ์์๊ฒ๋๋ค. ์ฐ์ ๋ค ์ ์ณ๋๊ณ , ๋ค์๊ณผ ๊ฐ์ ์ฝ๋๋ฅผ ์ฃผ๋ชฉํด์ฃผ์ธ์ :)
/**
* Get port from environment and store in Express.
*/
var port = normalizePort(process.env.PORT || '3000');//์ฌ๊ธฐ๋ฅผ ์ฃผ๋ชฉํด์ฃผ์ธ์โ
app.set('port', port);
process.env.PORT๋ ํ๊ฒฝ๋ณ์์ธ๋ฐ ์ด๊ฒ์ ๋ํด์ ์ถํ ์์ธํ ๋ค๋ฃจ๊ฒ ์ต๋๋ค. ์ฐ๋ฆฌ๊ฐ ์ฃผ๋ชฉํ ๊ฒ์ 3000์ด๋ผ๋ ์ซ์์ ๋๋ค. ์ด๊ฒ ๋ฐ๋ก ์ฐ๊ฒฐํ ํฌํธ ๋ฒํธ์ ๋๋ค. ํด๋น ํฌํธ๋ฅผ ๊ธฐ์ค์ผ๋ก localhost:3000์ผ๋ก ์ ์ํ๋ฉด ๋ฉ๋๋ค!!
6. ๋ค์๊ณผ ๊ฐ์ ํ๋ฉด์ด ํ์๋๋ค๋ฉด ์ฑ๊ณตํ ๊ฒ์ ๋๋ค :) ์ด๋ ต์ง ์์ฃ ??
ํ๋ฉด์ ์ถ๋ ฅ๋๋ ๋ฌธ๊ตฌ๋ฅผ ๋ฐ๊พธ๊ณ ์ถ๋ค๋ฉด??
๊ทธ๊ฑด ๋ค์์ ๋ค๋ฃจ์ด๋ณด๊ฒ ์ต๋๋ค
์ฝ์ด์ฃผ์ ์ ๊ฐ์ฌํฉ๋๋ค.
์ง๋ฌธ์ ์ธ์ ๋ ํ์ํฉ๋๋ค.
"๋ ๋ฐ๋์ ๋ฐฑ์๋ ์์ด ๋ ๊ฑฐ์ผ"
'...' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[JS] ํ๋กํ ํ์ ์ดํดํ๊ธฐ with ํ๋กํ ํ์ ์ฒด์ธ (2) | 2020.12.17 |
---|---|
[DB] ์ ํ, ๋ฐ์ ํ, ๋น์ ํ ๋ฐ์ดํฐ (1) | 2020.12.16 |
[DB] ๋ฐ์ดํฐ๋ฒ ์ด์ค์ ๊ธฐ๋ณธ ๊ฐ๋ (1) | 2020.12.16 |
[JS] ๋๋ง์ ์ฒ ํ์ด ๋ด๊ธด ์ฝ๋๋?? (2) | 2020.12.16 |
[Node.js] bcrypt๋ก ๋น๋ฐ๋ฒํธ ์ํธํ ํ๊ธฐ (0) | 2020.12.14 |