Posts NodeJS Routing 모듈화 및 리팩토링
Post
Cancel

NodeJS Routing 모듈화 및 리팩토링

페이지 별로 관리하기 위해서 Routing 모듈화를 합니다.







  • Development Env.
  • post date : 2020. 06. 28
  • OS : macOS Catalina 64bit, Windows 10 64bit
  • Nodeserver : 1.0.0
  • Express : 4.17.1
  • Nodemon : 2.0.4

nodejs_logo

NodeJS Routing 모듈화

expressjs - router

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
// app.js
var exp = require('express')
var app = exp()
var bodyParser = require('body-parser');

const express = require('express');
var cors = require('cors')

var mainRouter = require('./routers/router_main')
var userRouter = require('./routers/router_user')

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

app.use(express.static('public'))
app.use(express.static('assets'))
app.use(bodyParser.json())
app.use(bodyParser.urlencoded ({
    extended:true
}))
app.set('view engine', 'ets')
app.use(cors()) // Use this after the variable declaration

app.use('/main', mainRouter)
app.use('/user', userRouter)

app.get('/', function(req, res) {
    res.sendFile(__dirname + "/public/main.html")
})
1
2
3
4
5
6
7
8
9
10
11
// routers/router_main.js
var exports = require('express')
var router = exports.Router()
var path = require('path')

//url routing
router.get('/', function(req, res, next) {
    console.log('main')
    res.sendFile(path.join(__dirname, "../public/main.html"))
})
module.exports = router;

이런식으로 모듈화를 하면, app.js를 심플하게 관리할 수 있습니다. github - commit

NodeJS Routing 리팩토링

라우터 하위에 index.js에서 하위의 라우터를 관리하도록 수정하겠습니다.

1
2
3
4
5
6
7
8
9
다음과 같은 구조로 작성합니다.
│  index.js
│  
├─main
│      router_main.js
│      
└─user
        router_user.js

github - commit

This post is licensed under CC BY 4.0 by the author.