ich eine App mit Controllern in mehrere Dateien, wie folgt aus:eine Express-Middleware-Funktion für alle verwenden aber einen Controller
var aRoutes = require('./controllers/controllerA');
var bRoutes = require('./controllers/controllerB');
var cRoutes = require('./controllers/controllerC');
app.use('/a', aRoutes);
app.use('/b', bRoutes);
app.use('/c', cRoutes);
// ... several more
Und ich habe eine Middleware-Funktion wie folgt ...
app.use(function (req, res, next) {
// do a middleware thing
// but not if route == x or y or z or ... yuck!
});
Und ich möchte, dass die Middleware auf alles läuft außer die aRoutes. Ich habe eine Antwort like this gesehen, die schlägt vor, einen Check in der Middleware Fn für jede Route auszuschließen, aber das ist schrecklich, denke ich. Es kann viele Routen geben, die überprüft werden müssen, und es zwingt mich, den Code an zwei Stellen zu berühren, wenn ich eine dieser Ausnahmerouten hinzufüge.
Es muss einen besseren Weg geben, oder?
Verwenden Sie separate Router und legen Sie den Middleware-Aufruf in die Router, in denen Sie sie möchten, und nicht in die Router, die Sie nicht möchten. Solange jeder Router seinen eigenen Pfad hat (was so aussieht), werden Sie festgelegt. – jfriend00