मैं अपने मार्गों को अलग-अलग फ़ाइलों में विभाजित करना चाहता हूं, जहां एक फ़ाइल में सभी मार्ग और दूसरे में एक ही कार्रवाई होती है। वर्तमान में मेरे पास इसे प्राप्त करने के लिए एक समाधान है, हालांकि मुझे कार्यों में इसे एक्सेस करने में सक्षम होने के लिए ऐप-इंस्टेंस को वैश्विक बनाने की आवश्यकता है। मेरा वर्तमान सेटअप इस तरह दिखता है:
app.js:
var express = require('express');
var app = express.createServer();
var routes = require('./routes');
var controllers = require('./controllers');
routes.setup(app, controllers);
app.listen(3000, function() {
console.log('Application is listening on port 3000');
});
routes.js:
exports.setup = function(app, controllers) {
app.get('/', controllers.index);
app.get('/posts', controllers.posts.index);
app.get('/posts/:post', controllers.posts.show);
// etc.
};
नियंत्रक / index.js:
exports.posts = require('./posts');
exports.index = function(req, res) {
// code
};
नियंत्रक / posts.js:
exports.index = function(req, res) {
// code
};
exports.show = function(req, res) {
// code
};
हालाँकि, इस सेटअप में एक बड़ा मुद्दा है: मेरे पास एक डेटाबेस है और एक ऐप-इंस्टेंस है, जिसे मुझे क्रियाओं (नियंत्रकों / *। Js) में पास करने की आवश्यकता है। एकमात्र विकल्प जिसके बारे में मैं सोच सकता था, वह दोनों चर को वैश्विक बना रहा है जो वास्तव में कोई समाधान नहीं है। मैं मार्गों को कार्यों से अलग करना चाहता हूं क्योंकि मेरे पास बहुत सारे मार्ग हैं और उन्हें केंद्रीय स्थान पर रखना चाहता हूं।
क्रियाओं के लिए चर पास करने का सबसे अच्छा तरीका क्या है लेकिन मार्गों से कार्यों को अलग करना है?