Ich möchte meine Routen in verschiedene Dateien aufteilen, wobei eine Datei alle Routen und die andere die entsprechenden Aktionen enthält. Ich habe derzeit eine Lösung, um dies zu erreichen. Ich muss jedoch die App-Instanz global machen, um in den Aktionen darauf zugreifen zu können. Mein aktuelles Setup sieht folgendermaßen aus:
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.
};
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
};
Dieses Setup hat jedoch ein großes Problem: Ich habe eine Datenbank- und eine App-Instanz, die ich an die Aktionen übergeben muss (Controller / *. Js). Die einzige Option, die ich mir vorstellen kann, besteht darin, beide Variablen global zu machen, was eigentlich keine Lösung ist. Ich möchte Routen von den Aktionen trennen, weil ich viele Routen habe und sie an einem zentralen Ort haben möchte.
Was ist der beste Weg, um Variablen an die Aktionen zu übergeben, aber die Aktionen von den Routen zu trennen?