を使用します...は、私がこのように、いくつかのファイル内のコントローラとアプリを持っている特急ミドルウェア、すべての機能が、1つのコントローラ
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
そして、私はこのようなミドルウェア機能を持っている
app.use(function (req, res, next) {
// do a middleware thing
// but not if route == x or y or z or ... yuck!
});
そして、私はそのミドルウェアがすべてを実行するようにしたいが、 aRoutesを除く。私は答えを見つけましたlike this、ミドルウェアのチェックを追加することを示唆fnのすべてのルートが除外されるが、それはひどいです、と私は思います。チェックするルートがたくさんある可能性があり、それらの例外ルートの1つを追加すると2つの場所でコードに触れる必要があります。
もっと良い方法が必要でしょうか?
別々のルータを使用して、ミドルウェアコールを必要なルータに入れ、使用しないルータには入れないでください。各ルータに独自のパスがある限り、それは設定されます。 – jfriend00