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

वैसे यह एक बुरा अभ्यास नहीं है बल्कि यह स्थिति के लिए सबसे अनुकूल नहीं है।

बेहतर रूटिंग समाधान प्राप्त करने के लिए आप ऐसा कुछ कर सकते हैं।

  • राउटर फ़ाइल में अपने मार्गों को कॉन्फ़िगर करें और अपने व्यवहार को एक विशिष्ट नियंत्रक में संभाल लें।

E.g ऐसा कुछ। (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) 
संबंधित मुद्दे