Tôi muốn chia các tuyến đường của mình thành các tệp khác nhau, trong đó một tệp chứa tất cả các tuyến và tệp kia chứa các hành động tương ứng. Tôi hiện có một giải pháp để đạt được điều này, tuy nhiên tôi cần đặt phiên bản ứng dụng ra toàn cầu để có thể truy cập nó trong các hành động. Thiết lập hiện tại của tôi trông như thế này:
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.
};
bộ điều khiển / index.js:
exports.posts = require('./posts');
exports.index = function(req, res) {
// code
};
bộ điều khiển / posts.js:
exports.index = function(req, res) {
// code
};
exports.show = function(req, res) {
// code
};
Tuy nhiên, thiết lập này có một vấn đề lớn: Tôi có một cơ sở dữ liệu- và một phiên bản ứng dụng mà tôi cần chuyển cho các hành động (bộ điều khiển / *. Js). Lựa chọn duy nhất mà tôi có thể nghĩ đến, là làm cho cả hai biến trở nên toàn cầu, đây không phải là một giải pháp. Tôi muốn tách các tuyến đường khỏi các hành động vì tôi có rất nhiều tuyến đường và muốn chúng ở vị trí trung tâm.
Cách tốt nhất để chuyển các biến cho các hành động nhưng tách các hành động khỏi các tuyến là gì?