Wenn Sie eine Website (eine beliebige URL auf dieser Website) besuchen, sendet ein Browser normalerweise auch eine Anfrage an dieselbe Domain für /favicon.ico
Sehen Sie also nach, ob die Website ein Symbol zur visuellen Darstellung der Website anbietet.
Da Sie eine Wildcard-Top-Level-Route verwenden:
app.get('/:listRoute', ...)
Das wird von der Anfrage nach /favicon.ico
getroffen . Einige andere URLs, auf die Sie möglicherweise auch achten müssen, sind:/robots.txt
, /humans.txt
, /sitemap.xml
, /ads.txt
.
Es gibt eine Reihe von Möglichkeiten, dies zu umgehen:
-
Ihre Wildcard-Route kann zuerst
req.url
prüfen oderreq.params.listRoute
um zu sehen, ob es etwas ist, das ignoriert werden sollte. -
Sie können andere Top-Level-Routen, die Sie von Ihrer Wildcard-Route fernhalten möchten, an einer Position vor dieser Route platzieren, damit sie nicht in dieser Route landen.
-
Verwenden Sie keine Wildcard-Route der obersten Ebene. Verwenden Sie stattdessen etwas wie
/list/:listRoute
Daher wird es nicht automatisch mit einer HTTP-Anfrage der obersten Ebene übereinstimmen. Ihre Verwendung einer Top-Level-Wildcard-Route beeinträchtigt andere zukünftige Verwendungen Ihrer Website und kann eine Abwärtskompatibilität für die Zukunft schaffen, wenn Sie Ihrer Website andere Top-Level-Routen hinzufügen möchten. Stellen Sie sich vor, Sie möchten irgendwann in der Zukunft/contact
hinzufügen oder/login
oder/logout
. Diese stehen alle im Konflikt mit/:listRoute
.