ฉันต้องการแยกเส้นทางของฉันออกเป็นไฟล์ต่างๆโดยที่ไฟล์หนึ่งมีเส้นทางทั้งหมดและอีกไฟล์หนึ่งเป็นการดำเนินการที่เกี่ยวข้อง ขณะนี้ฉันมีวิธีแก้ปัญหาเพื่อให้บรรลุสิ่งนี้อย่างไรก็ตามฉันต้องทำให้อินสแตนซ์แอปเป็นสากลเพื่อให้สามารถเข้าถึงได้ในการดำเนินการ การตั้งค่าปัจจุบันของฉันมีลักษณะดังนี้:
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');
});
เส้นทาง js:
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) ทางเลือกเดียวที่ฉันคิดได้คือการสร้างตัวแปรทั้งสองให้เป็นสากลซึ่งไม่ใช่วิธีแก้ปัญหาจริงๆ ฉันต้องการแยกเส้นทางออกจากการดำเนินการเนื่องจากฉันมีเส้นทางจำนวนมากและต้องการให้อยู่ในจุดศูนย์กลาง
วิธีใดเป็นวิธีที่ดีที่สุดในการส่งผ่านตัวแปรไปยังการดำเนินการ แต่แยกการดำเนินการออกจากเส้นทาง