sql >> Database >  >> NoSQL >> MongoDB

waarom krijg ik favicon.ico als ik de findOne-methode gebruik voor express params-routes?

Wanneer u een website bezoekt (elke URL op die website), stuurt een browser doorgaans ook een verzoek naar datzelfde domein voor /favicon.ico dus kijk of de website een pictogram biedt om een ​​visuele weergave van de site te zijn.

Aangezien u een route op het hoogste niveau met jokertekens gebruikt:

app.get('/:listRoute', ...)

Dat wordt geraakt door het verzoek om /favicon.ico . Enkele andere URL's waar u mogelijk ook op moet letten om te worden aangevraagd, zijn:/robots.txt , /humans.txt , /sitemap.xml , /ads.txt .

Er zijn een aantal manieren om dit te omzeilen:

  1. Uw wildcard-route kan eerst req.url check controleren of req.params.listRoute om te zien of het iets is dat het moet negeren.

  2. U kunt andere routes op het hoogste niveau die u buiten uw wildcardroute wilt houden, in een positie vóór deze route plaatsen, zodat ze niet in deze route terechtkomen.

  3. Gebruik geen wildcardroute op het hoogste niveau. Gebruik in plaats daarvan iets als /list/:listRoute dus het komt niet automatisch overeen met een http-verzoek op het hoogste niveau. Uw gebruik van een route met jokertekens op het hoogste niveau verstoort ander toekomstig gebruik van uw site en kan in de toekomst achterwaartse compatibiliteit creëren wanneer u andere routes op het hoogste niveau aan uw site wilt toevoegen. Stel je voor dat je ergens in de toekomst /contact . wilt toevoegen of /login of /logout . Die zijn allemaal in strijd met /:listRoute .



  1. ValueError:Extra gegevensfout bij het importeren van een json-bestand met python

  2. Mongoose:mpromise (de standaard beloftebibliotheek van mangoest) is verouderd

  3. Hoe komt magento aan de namen van cachesleutels?

  4. Match op tekstveld combineren met aggregaat