Lorsque vous visitez un site Web (toute URL de ce site Web), un navigateur envoie généralement également une demande à ce même domaine pour /favicon.ico
alors voyez si le site Web propose une icône pour être une représentation visuelle du site.
Puisque vous utilisez une route de niveau supérieur générique :
app.get('/:listRoute', ...)
Cela sera touché par la demande de /favicon.ico
. Certaines autres URL que vous devrez peut-être également surveiller pour être demandées sont :/robots.txt
, /humans.txt
, /sitemap.xml
, /ads.txt
.
Il existe plusieurs façons de contourner ce problème :
-
Votre itinéraire générique peut d'abord vérifier
req.url
oureq.params.listRoute
pour voir si c'est quelque chose qu'il doit ignorer. -
Vous pouvez placer d'autres itinéraires de niveau supérieur que vous souhaitez exclure de votre itinéraire générique avant cet itinéraire afin qu'ils ne se retrouvent pas dans celui-ci.
-
N'utilisez pas une route générique de niveau supérieur. À la place, utilisez quelque chose comme
/list/:listRoute
il ne correspondra donc pas automatiquement à une requête http de niveau supérieur. Votre utilisation d'une route générique de niveau supérieur interfère avec d'autres utilisations futures de votre site et peut créer une rétrocompatibilité à l'avenir lorsque vous souhaitez ajouter d'autres routes de niveau supérieur à votre site. Imaginez si dans le futur, vous vouliez ajouter/contact
ou/login
ou/logout
. Ceux-ci sont tous en conflit avec/:listRoute
.