๐ค express-generator๊ฐ ๋ญ์ง?
npx express-generator
๐ Express ์๋ฒ์ ์ ์ ํด๋ ๊ตฌ์กฐ๋ฅผ ์๋์ผ๋ก ๋ง๋ค์ด์ฃผ๋ ๋๊ตฌ
// ํจํค์ง ์ค์น
npm install
// ํ๋ก์ ํธ ๊ตฌ๋
npm start
npm install๋ package.json์ dependencies์์๋ ๋ชจ๋๋ค์ ์๋์ผ๋ก ๋ค์ด๋ก๋ ํด node_module ํด๋์ ๋ฃ์ด์ค๋ค.
๊ทธ ๊ณผ์ ์ ๊ฑฐ์ณ์ผ์ง ํ๋ก์ ํธ๊ฐ ์ ์์ ์ผ๋ก ๊ตฌ๋๋ ๊ฒ์ด๋ค.
var port = normalizePort(process.env.PORT || '3000');
app.set('port', port);
/bin/www ํ์ผ์ ํ์ธํ๋ฉด, ํฌํธ ๋๋ฒ๋ฅผ ํ์ธํ ์ ์๋ค.
ํน์ ์ถฉ๋์ด ์ด๋ฌ๋๋ฉด ์ด๊ณณ์ ํฌํธ๋๋ฒ๋ง ์์ ํด์ฃผ๋ฉด ๋๋ค.
๊ทธ๋ฌ๋ฉด ๋ธ๋ผ์ฐ์ ์์ localhost:3000์ผ๋ก ํ์ธ์ ํด๋ณผ ์ ์์ ๊ฒ์ด๋ค.

์์ฑํ๋ฉด ๋์ค๋ ๊ธฐ๋ณธ ๊ตฌ์กฐ
express-generator๋ฅผ ์ค์นํ๋ฉด ์๋์ผ๋ก ์์ฑ๋๋ ํด๋๋ค์ด๋ค. ์ด๊ฒ๋ค์ด ์ด๋ป๊ฒ ๊ตฌ์ฑ๋์ด์๋์ง ํ์ธํด๋ณด์.
myapp/
โโ bin/
โ โโ www
โโ public/
โ โโ images/
โ โโ javascripts/
โ โโ stylesheets/
โ โโ style.css
โโ routes/
โ โโ index.js
โ โโ users.js
โโ views/
โ โโ error.pug
โ โโ index.pug
โ โโ layout.pug
โโ app.js
โโ package.json
1๏ธโฃ [bin/www] — ์๋ฒ ์คํ
#!/usr/bin/env node
var app = require('../app');
var http = require('http');
var server = http.createServer(app);
server.listen(3000);
- ํฌํธ ์ด๊ธฐ
- ์ค์ ์๋ฒ ์คํ
- ์๋ฌ ํธ๋ค๋ง
2๏ธโฃ [app.js] — ์์ฒญ ์ฒ๋ฆฌ, ์๋ฒ ์ค์
var express = require('express');
var app = express();
โ ๋ฏธ๋ค์จ์ด ๋ฑ๋ก
app.use(express.json());
app.use(express.urlencoded({ extended: false }));
โก ์ ์ ํ์ผ
app.use(express.static(path.join(__dirname, 'public')));
โข ๋ผ์ฐํฐ ์ฐ๊ฒฐ
var indexRouter = require('./routes/index');
var usersRouter = require('./routes/users');
app.use('/', indexRouter);
app.use('/users', usersRouter);
3๏ธโฃ [routes/] — URL ๋ด๋น
routes/
โโ index.js
โโ users.js
[routes/index.js]
var express = require('express');
var router = express.Router();
router.get('/', function(req, res) {
res.render('index');
});
module.exports = router;
์ฌ๊ธฐ์ router๋ ์์ app ์ด๋ผ๊ณ ๋ณผ ์ ์์.
/users→ users.js/→ index.js- ์ด๋ ๊ฒ URL๋ณ๋ก ํ์ผ์ ๋ถ๋ฆฌํด์ ํ์ผ ํ๋์ URL ์๋ฐฑ ๊ฐ ์์ด๋ ๊ฒ์ ๋ฐฉ์ง!
4๏ธโฃ [views/] — ํ๋ฉด ๋ด๋น (MVC์ V)
views/
โโ layout.pug
โโ index.pug
โโ error.pug
res.render('index', { title: 'Express' });
์๋ฒ๊ฐ HTML ๋ง๋ค์ด์ ๋ณด๋ด๋ ๊ตฌ์กฐ
5๏ธโฃ [public/] — ์ ์ ํ์ผ
public/
โโ stylesheets/
โโ javascripts/
โโ images/
- CSS
- JS
- ์ด๋ฏธ์ง
app.use(express.static('public'))
์์ฒญ ๊ฑฐ์น์ง ์๊ณ ๋ฐ๋ก ์ ๊ณต
app.js : ์ค์ ,
routes : URL,
bin/www : ์คํ,
public : ์ ์ ,
views : ํ๋ฉด
์์ฒญ →
bin/www →
app.js →
middleware →
routes/* →
response
์ด์ฒ๋ผ Express๋ ๊ฐ ์ญํ ์ ๋งก์ ํ์ผ๋ค์ด ์ ๊ธฐ์ ์ผ๋ก ์ฐ๊ฒฐ๋์ด ํ๋์ ์๋ฒ๋ฅผ ๊ตฌ์ฑํ๋ค.
express-generator ์์ด Express๋ฅผ ๊ณต๋ถํด๋ณธ ๊ฒฝํ์ด ์๋ค๋ฉด,
๋น์ทํ ์ค์ ์ฝ๋๋ค์ด ์ฌ๋ฌ ํ์ผ์ ๋ฐ๋ณตํด์ ๋ฑ์ฅํ๋ ๊ธฐ์ต์ด ์์ ๊ฒ์ด๋ค.
์ค์ ํ๋ก์ ํธ์์ express-generator๋ฅผ ์ฌ์ฉํ๋ฉด ์ด๋ฐ ๋ฐ๋ณต์ ์ค์ด๊ณ , ์ญํ ์ด ๋ถ๋ฆฌ๋ ๊ตฌ์กฐ๋ฅผ ๋น ๋ฅด๊ฒ ๊ตฌ์ฑํ ์ ์๋ค.
ํนํ ํ์
ํ๊ฒฝ์์๋ ํ์ผ ๊ตฌ์กฐ๋ ์ค์ ๋ฑ์ ๋ชจ๋๊ฐ ๊ฐ์ ๊ธฐ์ค์ผ๋ก ์ดํดํ ์ ์๊ธฐ ๋๋ฌธ์,
์ฌ์ค์ ์ ํ์ด ์๋๋ผ ๊ธฐ๋ณธ์ ๊ฐ๊น์ด ๋๊ตฌ๋ผ๊ณ ๋ณผ ์ ์๋ค.
'BE > Node.js' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
| ๋๋ค ๋ฐ์ดํฐ ์์ฑ API(mockaroo, Fakerjs) (0) | 2026.03.24 |
|---|---|
| [Swagger] Swagger ์์๋ณด๊ณ ๊ธฐ์กด ํ๋ก์ ํธ์ ์ ์ฉํด๋ณด์. (0) | 2026.02.17 |