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