Когда вы посещаете веб-сайт (любой URL-адрес на этом веб-сайте), браузер, как правило, также отправляет запрос на тот же домен для /favicon.ico
, поэтому посмотрите, предлагает ли веб-сайт значок для визуального представления сайта.
Поскольку вы используете подстановочный маршрут верхнего уровня:
app.get('/:listRoute', ...)
На него попадет запрос на /favicon.ico
. Некоторые другие URL-адреса, которые вам также, возможно, необходимо отслеживать для получения запроса: /robots.txt
, /humans.txt
, /sitemap.xml
, /ads.txt
.
Существует несколько способов обойти эту проблему. :
Ваш маршрутный символ может сначала проверить req.url
, чтобы определить, следует ли его игнорировать.
Вы можете разместить другие маршруты верхнего уровня вы хотите, чтобы ваш маршрутный маршрут не попадал в позицию перед этим маршрутом, чтобы они не оказались в этом.
Не используйте групповой маршрут верхнего уровня. Вместо этого используйте что-то вроде /list/:listRoute
, чтобы оно не совпадало ни с одним http-запросом верхнего уровня. Использование вами подстановочного маршрута верхнего уровня мешает другим будущим использованиям вашего сайта и может создать обратную совместимость, если вы захотите добавить другие маршруты верхнего уровня на свой сайт. Представьте, что когда-нибудь в будущем вы захотите добавить /contact
или /login
или /logout
. Все они конфликтуют с /:listRoute
.