Express - Node.js web application framework
Express is a fast, unopinionated, minimalist web framework for Node.js, providing a robust set of features for web and mobile applications.
expressjs.com
โ๏ธ Express
Node.js๋ฅผ ์ํ ๋น ๋ฅด๊ณ ๊ฐ๋ฐฉ์ ์ธ ๊ฐ๊ฒฐํ ์น ํ๋ ์์ํฌ
= ๋ด๊ฐ ๋ง๋ค๊ณ ์ถ์ ์น ์๋น์ค๋ฅผ ๊ตฌํํ๋๋ฐ ํ์ํ ๋ชจ๋ ์ผ์ ํ ์์์ ํ ์ ์๋ ๊ฒ
http๋ชจ๋์ ๋ณด๋ค ๋ ๊ฐ๊ฒฐํ๊ณ ํธ๋ฆฌํ์ธ ์ฌ์ฉํ ์ ์๋๋ก ๋์์ฃผ๋ ๋ชจ๋
- Hello World ์์
const express = require('express')
const app = express()
const port = 3000
app.get('/', (req, res) => {
res.send('Hello World!')
})
app.listen(port, () => {
console.log(`Example app listening on port ${port}`)
})
express๋ชจ๋์ app์ ๋ด์์ฃผ๊ณ , port๋ฅผ 3000์ผ๋ก ์ค์ '/'๋ก ์์ฒญ์ด ์ค๋ฉด Hello World๋ฅผ ๋ฐํํด์ฃผ๋ ์ฝ๋ฐฑํจ์ ํธ์ถ
โ๏ธ Express Generator
๊ธฐ๋ณธ ํด๋ ๊ตฌ์กฐ๊น์ง ์ ์ํ๊ฒ ์์ฑํด์ฃผ๋ ์ ํ๋ฆฌ์ผ์ด์ ์์ฑ๊ธฐ ๋๊ตฌ
ํ๋ก์ ํธ ๊ท๋ชจ๊ฐ ํฌ๊ฑฐ๋, ์ฒด๊ณ์ ์ผ๋ก, ์ค์ ํ ๊ฒ๋ ๋ง์์ง๋ ๊ฒฝ์ฐ ์ฌ์ฉ
- ์ค์น
$ npm install express-generator -g
- ๊ตฌ์กฐ
express๋ผ๋ ๋ช ๋ น์ด๋ฅผ ์ณ๋ณด๋ฉด ์๋์ผ๋ก ๋ค์๊ณผ ๊ฐ์ ํด๋๋ค์ด ์๋์ผ๋ก ์ธํ ๋จ
โโโ app.js
โโโ bin
โ โโโ www
โโโ package.json
โโโ public
โ โโโ images
โ โโโ javascripts
โ โโโ stylesheets
โ โโโ style.css
โโโ routes
โ โโโ index.js
โ โโโ users.js
โโโ views
โโโ error.pug
โโโ index.pug
โโโ layout.pug
7 directories, 9 files
๐ app.js
- ํต์ฌ์ ์ธ ์๋ฒ ์ญํ ๋ด๋น
- ์ฌ๋ฌ ๋ฏธ๋ค์จ์ด ๊ด๋ฆฌ
๋ฏธ๋ค์จ์ด๋,
์ ์ชฝ์ ์ฐ๊ฒฐํด ๋ฐ์ดํฐ๋ฅผ ์ฃผ๊ณ ๋ฐ์ ์ ์๋๋ก ์ค๊ฐ์์ ๋งค๊ฐ ์ญํ ํ๋ ์ํํธ์จ์ด
var express = require('express');
var app = express();
express ๋ชจ๋์ ๋ถ๋ฌ๋ค app์ ๋ด์
// view engine setup
app.set('views', path.join(__dirname, 'views'));
app.set('view engine', 'pug');
view ๊ด๋ จ ์ถ๊ฐ ์ธํ
app.use(logger('dev'));
app.use(express.json());
app.use(express.urlencoded({ extended: false }));
app.use(cookieParser());
app.use(express.static(path.join(__dirname, 'public')));
app.use('/', indexRouter);
app.use('/users', usersRouter);
๋ฏธ๋ค์จ์ด ๊ด๋ จ ์ธํ
http ๋ชจ๋์ ๊ธฐ๋ฐ์ผ๋ก ์ฌ๋ฌ ๋ชจ๋์ ๊ฐ์ธ๊ฐ์ง๊ณ ๋ง๋ ํธํ ๋ชจ๋์ด express
http ๋ชจ๋์ ์ ์ธํ ๋ค๋ฅธ ๋ชจ๋๋ค์ ๋ฏธ๋ค์จ์ด๋ผ๊ณ ํจ
๐ bin > www
์๋ฒ๋ฅผ ์คํํ๋ ์คํฌ๋ฆฝํธ๋ก http ๋ชจ๋์ express ๋ชจ๋์ ์ฐ๊ฒฐํ๊ณ ํ๋ก์ ํธ๊ฐ ์คํ๋๋ ํฌํธ ์ง์
var app = require('../app'); // app.js ๋ชจ๋์ ๊ฐ์ ธ์ด
var debug = require('debug')('expressbase:server'); // debug ๋ชจ๋์ ์ฝ์ ์ฐฝ์ ์ด๋ค ๋ถ๋ถ์ด ๋์๊ฐ๊ณ ์๋ ์ง ๋ก๊ทธ๋ฅผ ์ฐ์ด์ค
var http = require('http'); // http ๋ชจ๋์ ๊ฐ์ ธ์ด
ํ์ํ ๋ชจ๋์ ๊ฐ์ ธ์ค๋ ์ฝ๋
var port = normalizePort(process.env.PORT || '3000');
app.set('port', port); // ํฌํธ ๊ธฐ๋ณธ๊ฐ์ 3000์ด์ง๋ง ๋ค๋ฅธ ๊ฐ์ผ๋ก ์ค์ ํ๋ฉด ๊ทธ๊ฑธ๋ก ์ค์ ํ๊ฒ ๋ค
ํฌํธ ์ค์
var server = http.createServer(app); // express๊ฐ ์๋์ผ๋ก create server๋ฅผ ํด์ฃผ๊ณ ์์์
์๋ฒ ์์ฑ
๐ package.json
ํ๋ก์ ํธ์ ์คํ ๋ช ๋ น์ด, ์ฌ์ฉ ํจํค์ง๋ค๊ณผ ๊ฐ์ ๊ธฐ๋ก
๐public
๋ธ๋ผ์ฐ์ ๋ฑ ํด๋ผ์ด์ธํธ๊ฐ ์ ๊ทผ ๊ฐ๋ฅํ ํด๋
์ธ๋ถ์์ ์ ๊ทผ ๊ฐ๋ฅํ ํ์ผ๋ค์ด ๋ชจ์ฌ์๋ ํด๋
- /images : ๊ทธ๋ฆผํ์ผ
- /javascripts : ์๋ฐ์คํฌ๋ฆฝํธ ํ์ผ
- /stylesheets : CSS ํ์ผ
๐routes
์ฃผ์๋ณ ๋ผ์ฐํฐ ํ์ผ
์ค๋ํฌ์ธํธ ํ์ผ๋ค์ ์ ์ฅํด๋๋ ํด๋
- index.js๋ก ๋ผ์ฐํ ๊ด๋ฆฌ
๐ views
html ํ์ผ๋ค์ด ๋ชจ์ฌ์๋ ํด๋
์น ์๋ฒ ์ฌ์ฉ ์ ์ด ํด๋์ ํ์ผ๋ค์ ์ฌ์ฉํด ๋ ๋๋ง
'๐๏ธ DevCourse > Backend' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[TIL] Week 5 ๋ฐฑ์๋ ๊ธฐ์ด ๋ง๋ฌด๋ฆฌ (Router, Rename, API ์ค๊ณ ์์ ) (0) | 2025.02.21 |
---|---|
[TIL] Week 5 ๋น ๊ฐ์ฒด ํ์ธ & ๋ก๊ทธ์ธ, ์ฑ๋ API (0) | 2025.02.20 |
[TIL] Week 4 Map Object & JS Function (0) | 2025.02.14 |
[TIL] Week 4 ๋ฐฑ์๋ ๊ธฐ์ด : API ์ค์ต _ params, querty, map (1) | 2025.02.13 |
[TIL] Week 4 ๋ฐฑ์๋ ๊ธฐ์ด : Express (2) | 2025.02.12 |