2012-12-18 45 views
5

Tôi có một tuyến đường có thể làm nhiều việc khác nhau. Ví dụ:Thực tiễn không tốt để gọi các tuyến đường tốc hành từ một tuyến khác?

Một tập tin tuyến đường:

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'); 
}; 

là xấu thực hành này? Có cách nào tốt hơn để đi về một tình huống như vậy? Cảm ơn.

+0

tự hỏi điều tương tự. – chovy

+0

câu hỏi này thực sự mang tính chủ quan, nhưng đôi khi tốt hơn là chỉ thực hiện chuyển hướng. –

+0

tức là nếu bạn đang ở trên trang yêu cầu xác thực và bạn hiển thị trang đăng nhập thay vì chuyển hướng đến trang đăng nhập, tôi sẽ ghét bạn –

Trả lời

10

Vâng đây không phải là một thực hành tồi nhưng cũng không phải là cách phù hợp nhất cho tình huống này.

Bạn có thể làm một việc như thế này để đạt được giải pháp định tuyến tốt hơn.

  • Định cấu hình tuyến đường của bạn trong tệp bộ định tuyến và xử lý các hành vi của bạn trong một bộ điều khiển cụ thể.

Ví dụ như thế này. (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); 

}; 

Và yêu cầu router.js trong app.js chính của bạn

var router = require('./routes/router')(app) 
Các vấn đề liên quan