스터디코딩

[node.js/express] 라우터 분리하기 본문

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;
}; //라우트가 직접전달 되는것이 아니고 함수로 만드는 것.

'nodejs' 카테고리의 다른 글

[node.js / s3] node 백엔드에서 s3로 이미지 업로드(multer)  (0) 2022.02.17
[Node.js] Request param,query, body 의 차이점  (0) 2021.12.04
[Express]  (0) 2021.12.02
Nodejs에서 동기와 비동기 1  (0) 2021.11.28
javascript 3  (0) 2021.11.28
Comments