2014-05-22 4 views
2
에 경로를 처리하기위한 가장 좋은 방법은 무엇

나는 ExpressJS과 같은 경로를 작성하는 데 사용되었다은 expressJS

var app = express(); 
app.get('/something', function(req, res){}); 

하지만 우리가 지금 express.router을 사용할 수 있습니다 ExpressJS의 모든 새로운 V4 (함께 본)이 같은 미들웨어처럼 :

var app = express(); 
var router = app.Router(); 
app.use(router); 

router.get('/something', function(req, res){}); 

내 질문은 두 가지의 실제 차이점은 무엇이며 가장 좋은 방법은 무엇입니까?

미리 감사드립니다.

답변

2

코드 구성의 차이.

중복 경로 이름 지정 및 오타 오류를 방지하려면 router.route()를 사용하는 것이 좋습니다.

마운트에서,이 구문에 너무 쉽게 테스트 :

router 
    .route('/') 
    .all(function(req,res,next){ next(); }) 
    .get(...) 
    .post(...) 
    .put(...) 
    .delete(...) 

router.param('id',function(req,res,next,id){ ... })  
router.use('/feedback', anotherSubRouter); // will /my-mount-point/feedback 

... somewhere in app 

app.use('/my-mount-point', router); 
app.use('/api', apiRouter); 

...etc 

공식 문서

+0

here하는 것은 대단히 감사합니다! –

2

저는 이것이 단지 환경 ​​설정의 문제라고 생각합니다. 개인적으로 나는 (I 일반적으로 별도의 파일에이 논리를 당겨) 내가 실행해야 할 코드로 경로를 유지할 수 있기 때문에 당신이 위에서 언급 한 원래의 방법을 선호 :

는 app.js (이와 유사한 : https://gist.github.com/dylants/6705338를)

// ... 

// pull in all the controllers (these contain routes) 
fs.readdirSync("controllers").forEach(function(controllerName) { 
    require("./controllers/" + controllerName)(app); 
}); 

// ... 

컨트롤러/내 - controller.js 다시

module.exports = function(app) { 
    app.get("/api/my-uri", function(req, res) { 
     // ... 
    }); 
}; 

는이 일을하는 것은 themsel 저를 별도의 파일 내에서 URI를 제어 할 수 있습니다 그래서 사람들은 고립되어 일할 수 있습니다. 즉, 다른 사람들은 모든 파일을 동일한 파일에 저장하는 것을 선호하기 때문에 한 번에 모든 파일을 볼 수 있습니다 (Rails에 경로 명령이있는 것과 비슷합니다). 아마도 팀 멤버들과 상담하고 그들이 선호하는 것을보아야 할 것입니다.