라우팅은 HTTP 요청에 대한 응답하는 방법을 결정하는 것입니다.
웹 페이지를 확장시켜 나가면서 코드가 길어지면 유지 보수하기가 상당히 까다롭습니다.
그래서 노드에서 라우터를 분리하여 개발하는 것이 효율적입니다.
분리하여 어떻게 모듈화할지는 개발자 나름입니다.
프로젝트 구조
router - index.js / result.js
router 폴더를 만들어서 라우터를 분리했습니다.
index.js
var express = require('express');
var router = express.Router();
router.get('/', function (req, res) {
res.render('index');
});
module.exports = router;
result.js
var express = require('express');
var router = express.Router();
router.get('/result', function (req, res) {
var val1 = req.query.val1;
var val2 = req.query.val2;
res.render('result',{'val1':val1, 'val2':val2});
});
router.post('/result', function (req, res) {
val1 = req.body.val1;
val2 = req.body.val2;
res.render('result',{'val1':val1, 'val2':val2});
});
module.exports = router;
express 모듈 호출
라우팅 모듈 호출
모듈화
export
모듈화할 라우팅 구조는 동일합니다.
app.js
// express
var express = require('express');
var app = express();
// ejs
app.set('views', __dirname + '/views');
app.set("view engine", "ejs");
// bootstrap
app.use('/js', express.static(__dirname + '/node_modules/bootstrap/dist/js')); // bootstrap JS
app.use('/css', express.static(__dirname + '/node_modules/bootstrap/dist/css')); // bootstrap CSS
// post
app.use(express.urlencoded({extened: true}));
// router
var indexRouter = require('./router/');
var resultRouter = require('./router/result');
app.use('/', indexRouter);
app.use('/', resultRouter);
app.listen(3000, function () {
console.log("3000포트로 노드서버 오픈!!");
})
미들웨어로 분리된 라우팅 파일을 읽어오면서 사용합니다.
'JavaScript > Node.js' 카테고리의 다른 글
Node.js Express - 파일 업로드 (0) | 2025.02.18 |
---|---|
Node.js Express - JQuery 사용하기 (1) | 2025.02.18 |
Node.js Express - POST Method 전송 (0) | 2025.02.18 |
Node.js Express - Bootstrap 사용하기 + 헤더 분리 (0) | 2025.02.18 |
Node.js Express - GET Method 전송 (0) | 2025.02.18 |