애플리케이션 레벨의 미들웨어와 라우터 레벨의 미들웨어가 있는데 이번에 사용하고 알아볼 것은
라우터 레벨의 미들웨어 이다.
라우터 레벨은 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)