nodejs
[node.js/express] 라우터 분리하기
퓨처디벨로퍼
2021. 12. 5. 01:25
var router = express.Router();
router.get('/r1',function(req, res){
res.send('Hello /p1/r1');
})
router.get('/r2',function(req, res){
res.send('Hello /p1/r2');
})
app.use('/p1',router);
별도의 파일로 분리
var p1 = require('./routes/p1'); //경로의 파일을 요청
app.use('/p1',p1); // '/경로' 로 들어오면 p1에 매칭
//main.js
var express = require('express');
var route = express.Router();
route.get('/r1',function(req, res){
res.send('Hello /p1/r1');
})
route.get('/r2',function(req, res){
res.send('Hello /p1/r2');
})
module.exports = route;
//routes/p1
고립된 상태
위의 방식에서는, main.js에서 만들어진 어떤 정보나 로직을 p1.js에서 사용할 수 없다.
var p1 = require('./routes/p1')(app);
app.use('/p1',p1);
//main.js
- require를 통해 가져온 것은 함수 -> 함수를 호출할때 app 객체 전달.
module.exports = function(app){
var express = require('express');
var route = express.Router();
route.get('/r1',function(req, res){
res.send('Hello /p1/r1');
})
route.get('/r2',function(req, res){
res.send('Hello /p1/r2');
})
app.get('/p3/r1',function(req,res){
res.send('Hello /p3/r1');
})
return route;
}; //라우트가 직접전달 되는것이 아니고 함수로 만드는 것.