Routing 모듈화 -2

tintwo·2022년 12월 6일

express 미들웨어란?

애플리케이션 레벨의 미들웨어와 라우터 레벨의 미들웨어가 있는데 이번에 사용하고 알아볼 것은
라우터 레벨의 미들웨어 이다.

라우터 레벨은 express.Router() 로 생성할 수 있는 router 인스턴스에 미들웨어 바인딩
router.use()나 router.METHOD() 함수를 이용해 로드 할 수 있다.

출처와 참고 https://dev-dain.tistory.com/67

미들웨어 구성을 해보자.

이전엔 router를 main과 email로 나눠서 요청을 받아 처리 했다.

이젠 모든 요청을 처음에 받고 거쳐가는 router를 만들고 거기서 main과 email의 처리를 맡아서

하도록 만들면 된다.

즉, 처음 요청을 받은 1.라우터 -> 2-1.main / 2-2.email 이렇게 나눠서 갈 수 있도록.

index.js라는 파일을 router 폴더 안에 만들자.

처리하는 부분이나 역할에 따라 나눠서 폴더를 만들고 지정하면 되니 분별하기도 편해질 것.

var express = require('express')
var app = express()
var router = express.Router()
var path = require('path')

// 여기에 두 라우터를 불러 온다.
var main = require('./main')
var email = require('./email')


router.get('/', function(req, res) {
  console.log('## module -index.js- loaded ')
  res.sendfile(path.join(__dirname, '../public/main.html'))
});

// /main이나 /email로 요청이 들어왔을 때 사용 하도록
router.use('/main', main)
router.use('/email', email)

module.exports = router;

이렇게 처리 하니 메인 컨트롤러인 app.js가 상당히 깔끔해졌다.

var express = require('express')
var app = express()
var bodyParser = require('body-parser')


var router = require('./Router/index')
// middleWare

app.listen(3000, function() {
  console.log("start! express server on port 3000 ");
});

app.use(express.static('public'))
app.use(bodyParser.json())
app.use(bodyParser.urlencoded({extended:true}))
app.set('view engine', 'ejs')
app.use(router)
profile
study records of beginner developer

0개의 댓글