我想把我的路由分割成不同的文件,其中一个文件包含所有的路由,另一个文件包含相应的操作。我目前有一个解决方案来实现这一点,但我需要使应用程序实例全局,以便能够访问它的行动。 我现在的设置是这样的:
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');
});
路线:
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).我能想到的唯一选择,就是让两个变量都是全局的,这不是一个真正的解决方案。我想把路线和动作分开,因为我有很多路线,我想把它们放在一个中心位置。
将变量传递给操作但将操作与路由分开的最佳方法是什么?