내 경로를 다른 파일로 나누고 싶습니다. 한 파일에는 모든 경로가 포함되고 다른 파일에는 해당 작업이 포함됩니다. 현재이를 달성 할 수있는 솔루션이 있지만 작업에서 액세스 할 수 있도록 앱 인스턴스를 전역으로 만들어야합니다. 내 현재 설정은 다음과 같습니다.
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.
};
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
};
그러나이 설정에는 큰 문제가 있습니다. 작업 (controllers / *. js)에 전달해야하는 데이터베이스 및 앱 인스턴스가 있습니다. 내가 생각할 수있는 유일한 옵션은 두 변수를 모두 전역으로 만드는 것인데, 이는 실제로 해결책이 아닙니다. 경로가 많고 중앙에 위치하기를 원하기 때문에 작업에서 경로를 분리하고 싶습니다.
작업에 변수를 전달하고 경로에서 작업을 분리하는 가장 좋은 방법은 무엇입니까?