Rotalarımı farklı dosyalara bölmek istiyorum, burada bir dosya tüm rotaları içerir ve diğeri ilgili eylemleri içerir. Şu anda bunu başarmak için bir çözümüm var, ancak eylemlerde ona erişebilmek için uygulama örneğini global yapmam gerekiyor. Mevcut kurulumum şöyle görünüyor:
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');
});
route.js:
exports.setup = function(app, controllers) {
app.get('/', controllers.index);
app.get('/posts', controllers.posts.index);
app.get('/posts/:post', controllers.posts.show);
// etc.
};
denetleyiciler / index.js:
exports.posts = require('./posts');
exports.index = function(req, res) {
// code
};
denetleyiciler / posts.js:
exports.index = function(req, res) {
// code
};
exports.show = function(req, res) {
// code
};
Ancak, bu kurulumun büyük bir sorunu var: Eylemlere (denetleyiciler / *. Js) aktarmam gereken bir veritabanı ve uygulama örneğim var. Aklıma gelen tek seçenek, her iki değişkeni de küresel yapmaktır ki bu gerçekten bir çözüm değildir. Rotaları eylemlerden ayırmak istiyorum çünkü çok fazla rotam var ve onları merkezi bir yerde istiyorum.
Değişkenleri eylemlere aktarmanın ancak eylemleri rotalardan ayırmanın en iyi yolu nedir?