2017-08-10 2 views
0

Kann man eine Route gegen mehrere Muster überprüfen? Betrachten Sie den Fang alle * Route unten. req.route ist hier auf * abgestimmt. Ich möchte die Route gegen ein paar spezielle Szenarien innerhalb der gleichen Callback ~ NOT innerhalb einer anderen all oder use Middleware überprüfen.Express.js: Spiel Route in alle fangen

Antwort

0

Also sollten Sie nicht versuchen, den Platzhalter zu verwenden, um alles zu erfassen, als nach bestimmten Werten zu suchen. Erstellen Sie stattdessen einen Endpunkt, der nach diesen spezifischen Werten sucht, und verwenden Sie dann eine andere Route für die Erfassung aller Platzhalter.

app.get(['/test', '/another_value'], (req, res, next) => { 

}) 
+0

Vielleicht war ich nicht klar. Ich muss das in einem "catch-all" überprüfen, wie es mein Code suggeriert. Mein 'catch-all' muss Authentifizierung durchführen, aber einige Pfade ignorieren. –

1

Ich bin mir nicht sicher, warum Sie separate .all Routen für diese sind entlassen, weil es mir scheint, die beste Art der Durchführung dieser Kontrollen zu sein:

app.all('/foo/:param', (req, res, next) => { 
    req.isFoo = true; 
    next(); 
}); 

app.all('/bar/:param', (req, res, next) => { 
    req.isBar = true; 
    next(); 
}); 

app.all('*', (req, res, next) => { 
    if (req.isFoo || req.isBar) { ... } 
}) 

Oder analog zu Chris ' Antwort, habe eine Route zu beiden passen:

app.all([ '/foo/:param', '/bar/:param' ], (req, res, next) => { 
    req.isSpecial = true; 
    next(); 
}); 
+0

Danke Robert. Das werde ich am Ende machen. Hatte auf eine "express.matches" -ähnliche Fähigkeit gehofft, eine weitere 'all'-Route zu vermeiden. –

+0

@AnshulKoka gibt es Module, die Sie verwenden könnten (wie ['Pfad-zu-von-Params '] (https://github.com/dhoulb/path-to-from-params)), aber ich denke, separate' app.all() 'Handler ist sauberer. – robertklep

Verwandte Themen