sql >> Database teknologi >  >> NoSQL >> MongoDB

hvorfor får jeg favicon.ico, når jeg bruger findOne-metoden til express params-ruter?

Når du besøger et websted (en hvilken som helst URL på det websted), vil en browser typisk også sende en anmodning til det samme domæne for /favicon.ico så se, om webstedet tilbyder et ikon, der skal være en visuel repræsentation af webstedet.

Da du bruger en rute på øverste niveau med jokertegn:

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

Det vil blive ramt af anmodningen om /favicon.ico . Nogle andre webadresser, som du måske også skal passe på med at blive anmodet om, er:/robots.txt , /humans.txt , /sitemap.xml , /ads.txt .

Der er en række måder at omgå dette på:

  1. Din wildcard-rute kan først tjekke req.url eller req.params.listRoute for at se, om det er noget, den bør ignorere.

  2. Du kan placere andre ruter på øverste niveau, som du vil holde ude af din wildcard-rute, i en position før denne rute, så de ikke ender i denne.

  3. Brug ikke en wildcard-rute på øverste niveau. Brug i stedet noget som /list/:listRoute så det matcher ikke automatisk nogen http-anmodning på øverste niveau. Din brug af en rute med jokertegn på øverste niveau forstyrrer anden fremtidig brug af dit websted og kan skabe bagudkompatibilitet fremadrettet, når du vil tilføje andre ruter på øverste niveau til dit websted. Forestil dig, hvis du engang i fremtiden vil tilføje /contact eller /login eller /logout . De er alle i konflikt med /:listRoute .



  1. Node.js tilbagekald med MongoDB-opdatering vender aldrig tilbage, selvom den opdaterer DB

  2. hvor mange samlede forbindelser eller max forbindelser er tilgængelige i Redis Server?

  3. oplog aktiver på selvstændig mongod ikke til replicaset

  4. Hvad er MongoDB, og hvordan virker det?