Obwohl dies eine ältere Frage ist, bin ich hier gestolpert und habe nach einer Lösung für ein ähnliches Problem gesucht. Nachdem ich einige der Lösungen hier ausprobiert hatte, ging ich in eine andere Richtung und dachte, ich würde meine Lösung für alle anderen hinzufügen, die hier landen.
In Express 4.x können Sie eine Instanz des Router-Objekts abrufen und eine andere Datei importieren, die mehr Routen enthält. Sie können dies sogar rekursiv tun, sodass Ihre Routen andere Routen importieren, sodass Sie einfach zu wartende URL-Pfade erstellen können. Wenn ich beispielsweise bereits eine separate Routendatei für meinen Endpunkt '/ tests' habe und einen neuen Satz von Routen für '/ tests / automatisiert' hinzufügen möchte, möchte ich diese '/ automatisierten' Routen möglicherweise in eine andere Datei aufteilen Halten Sie meine '/ test'-Datei klein und einfach zu verwalten. Außerdem können Sie Routen logisch nach URL-Pfaden gruppieren, was sehr praktisch sein kann.
Inhalt von ./app.js:
var express = require('express'),
app = express();
var testRoutes = require('./routes/tests');
// Import my test routes into the path '/test'
app.use('/tests', testRoutes);
Inhalt von ./routes/tests.js
var express = require('express'),
router = express.Router();
var automatedRoutes = require('./testRoutes/automated');
router
// Add a binding to handle '/test'
.get('/', function(){
// render the /tests view
})
// Import my automated routes into the path '/tests/automated'
// This works because we're already within the '/tests' route so we're simply appending more routes to the '/tests' endpoint
.use('/automated', automatedRoutes);
module.exports = router;
Inhalt von ./routes/testRoutes/automated.js:
var express = require('express'),
router = express.Router();
router
// Add a binding for '/tests/automated/'
.get('/', function(){
// render the /tests/automated view
})
module.exports = router;