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
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) => {
})
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();
});
Danke Robert. Das werde ich am Ende machen. Hatte auf eine "express.matches" -ähnliche Fähigkeit gehofft, eine weitere 'all'-Route zu vermeiden. –
@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
- 1. Laravel fangen alle Route als letzte Option
- 2. Spring fangen alle Route für index.html
- 3. Express.js kann GET Route
- 4. Express.js Route regex
- 5. Express.js ändern Route ohne Refresh
- 6. Express.js Behandle nicht-route Routen
- 7. Express.js Route Module funktioniert nicht
- 8. Express.js - jede Middleware/Route in "Decorator" wickeln
- 9. mehrere Rückrufe auf einer Route in Express.js
- 10. send jquery Variable Express.js Route
- 11. Express.js - kann meine Route finden
- 12. Rohe Abfrage in express.js Route mit Sequelize
- 13. Express.js Variable in dynamisch erstellten Route vorbei
- 14. Keine Route Spiel in Suchfeld
- 15. Alle Routen für Flask fangen
- 16. Keine Route Spiel in Controller-Spezifikation für meine komplexe Route
- 17. reagieren App mit Express.js Route Setup
- 18. Express.js verwenden, um zusätzliche Route machen
- 19. Express.js mit niedriger Priorität app.get ('/ route');
- 20. Aktualisieren Sie alle Modell Express.js
- 21. Sollte ich Cluster für jede Route in express.js verwenden?
- 22. Einfügen mehrerer Ergebnisse in req Objekt in express.js Route
- 23. Route planen param auf nicht-genaue Route Spiel
- 24. Alle derzeit aktiven Sitzungen in express.js
- 25. Verwenden Sie eine Route als Alias für eine andere Route in Express.js
- 26. Express.js passieren Schlüsselnamen von einem variablen Wert in einer Route
- 27. express.js res.redirect in app.post Route nicht auf angegebene URL umleiten
- 28. console.log in express.js route nicht protokollieren mongodb ._id Feld
- 29. Rabbitmq und alle Warteschlangen fangen
- 30. ASP.NET MVC Routing fangen alle
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. –