Je veux diviser mes routes en différents fichiers, où un fichier contient toutes les routes et l'autre les actions correspondantes. J'ai actuellement une solution pour y parvenir, mais je dois rendre l'instance d'application globale pour pouvoir y accéder dans les actions. Ma configuration actuelle ressemble à ceci:
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.
};
controllers / index.js:
exports.posts = require('./posts');
exports.index = function(req, res) {
// code
};
controllers / posts.js:
exports.index = function(req, res) {
// code
};
exports.show = function(req, res) {
// code
};
Cependant, cette configuration pose un gros problème: j'ai une base de données et une instance d'application que je dois transmettre aux actions (controllers / *. Js). La seule option à laquelle je pourrais penser est de rendre les deux variables globales, ce qui n'est pas vraiment une solution. Je veux séparer les itinéraires des actions car j'ai beaucoup d'itinéraires et je les veux dans un endroit central.
Quelle est la meilleure façon de transmettre des variables aux actions mais de séparer les actions des routes?