2012-12-18 5 views
5

저는 여러 가지 일을 할 수있는 길을 가지고 있습니다. 예를 들면 :다른 노선에서 표현하는 경로를 호출하는 것은 나쁜 습관입니까?

경로 파일 :

exports.index = function (req, res) { 
    if (x) 
     exports.login(req,res); 
    else 
     exports.dostuff(req,res); 
}; 

exports.login = function(req, res) { 
    res.render('login'); 
}; 

exports.dostuff = function(req, res) { 
    res.render('otherfile'); 
}; 

이 나쁜 관행인가? 그런 상황에 대해 갈 수있는 더 좋은 방법이 있습니까? 감사.

+0

에 router.js을 필요로한다. – chovy

+0

이 질문은 실제로 주관적이지만 때로는 리디렉션 만하는 것이 좋습니다. –

+0

예를 들어, 인증이 필요한 페이지에서 로그인 페이지로 리디렉션하지 않고 로그인 페이지를 렌더링하면 나는 당신을 싫어합니다. –

답변

10

글쎄, 나쁜 상황은 아니지만이 상황에 가장 적합한 것은 아닙니다.

더 나은 라우팅 솔루션을 얻으려면 이와 같은 작업을 수행 할 수 있습니다.

  • 라우터 파일에서 경로를 구성하고 특정 컨트롤러에서 동작을 처리하십시오.

예 : 이와 비슷한. (router.js)

//First requiring your controller for actions 
var jobController = require("../controllers/job_controller"); 

module.exports = function(app) { 

    app.get("/jobs", jobController.getJobIndex); 
    app.get("/jobs/create", jobController.createJobView); 
    app.get("/jobs/update/:id", jobController.updateJobView); 
    app.get("/jobs/delete/:id", jobController.deleteJob); 
    app.get("/jobs/:id", jobController.getJobDetails); 

    app.post("/jobs/create", jobController.createJobPost); 
    app.post("/jobs/update", jobController.updateJobPost); 

}; 

그리고이 같은 일을 궁금 주 app.js

var router = require('./routes/router')(app) 
관련 문제