2012-12-18 12 views
5

Ho un percorso che potrebbe fare molte cose diverse. Per esempio:È una cattiva pratica chiamare le rotte espresse da un'altra?

Un file percorso:

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

È questa cattiva pratica? C'è un modo migliore di andare su una situazione del genere? Grazie.

+0

chiedendo la stessa cosa. – chovy

+0

questa domanda è davvero soggettiva, ma a volte è meglio fare semplicemente un reindirizzamento. –

+0

ie, se sei su una pagina che richiede l'autenticazione e rendi la pagina di login invece di reindirizzare alla pagina di login ti odierò –

risposta

10

Bene, questa non è una cattiva pratica, ma non è la più adatta per questa situazione.

Si potrebbe fare qualcosa di simile per ottenere una migliore soluzione di routing.

  • Configurare i percorsi nel file router e gestire i comportamenti in un controller specifico.

E.g qualcosa come questo. (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); 

}; 

e richiedono l'router.js nelle principali app.js

var router = require('./routes/router')(app) 
Problemi correlati