2012-12-18 27 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)