Saya ingin membagi rute saya menjadi beberapa file berbeda, di mana satu file berisi semua rute dan file lainnya berisi tindakan yang sesuai. Saat ini saya memiliki solusi untuk mencapai ini, namun saya perlu membuat instance aplikasi global untuk dapat mengaksesnya dalam tindakan. Pengaturan saya saat ini terlihat seperti ini:
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.
};
controller / index.js:
exports.posts = require('./posts');
exports.index = function(req, res) {
// code
};
controller / posts.js:
exports.index = function(req, res) {
// code
};
exports.show = function(req, res) {
// code
};
Namun, penyiapan ini memiliki masalah besar: Saya memiliki database- dan instance aplikasi yang perlu saya sampaikan ke tindakan (pengontrol / *. Js). Satu-satunya pilihan yang dapat saya pikirkan, adalah membuat kedua variabel global yang sebenarnya bukan solusi. Saya ingin memisahkan rute dari tindakan karena saya memiliki banyak rute dan ingin rute tersebut berada di pusat.
Apa cara terbaik untuk meneruskan variabel ke tindakan tetapi memisahkan tindakan dari rute?