MongoDB
 sql >> Baza danych >  >> NoSQL >> MongoDB

dlaczego otrzymuję favicon.ico, gdy używam metody findOne dla tras ekspresowych params?

Gdy odwiedzasz witrynę (dowolny adres URL w tej witrynie), przeglądarka zazwyczaj wysyła również żądanie do tej samej domeny o /favicon.ico więc sprawdź, czy witryna oferuje ikonę, która będzie wizualną reprezentacją witryny.

Ponieważ korzystasz z trasy najwyższego poziomu z symbolami wieloznacznymi:

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

To zostanie trafione żądaniem /favicon.ico . Niektóre inne adresy URL, na które również musisz uważać, to:/robots.txt , /humans.txt , /sitemap.xml , /ads.txt .

Istnieje kilka sposobów na obejście tego problemu:

  1. Twoja trasa z symbolami wieloznacznymi może najpierw sprawdzić req.url lub req.params.listRoute aby sprawdzić, czy jest to coś, co należy zignorować.

  2. Możesz umieścić inne trasy najwyższego poziomu, które chcesz trzymać z dala od trasy z symbolami wieloznacznymi, przed tą trasą, aby nie znalazły się w tej.

  3. Nie używaj trasy z symbolami wieloznacznymi najwyższego poziomu. Zamiast tego użyj czegoś takiego jak /list/:listRoute więc nie będzie automatycznie pasować do żadnego żądania http najwyższego poziomu. Korzystanie z trasy najwyższego poziomu z symbolami wieloznacznymi koliduje z innymi przyszłymi zastosowaniami witryny i może zapewnić zgodność wsteczną w przyszłości, gdy chcesz dodać do witryny inne trasy najwyższego poziomu. Wyobraź sobie, że kiedyś w przyszłości zechcesz dodać /contact lub /login lub /logout . Wszystkie one są w konflikcie z /:listRoute .



  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. Jak zainstalować MongoDB w systemie Windows?

  2. Jak wykonać operacje Update w GridFS (przy użyciu Javy)?

  3. Filtruj elementy tablicy za pomocą $regex

  4. MongoDB $dodaj

  5. Jak synchronicznie dodawać dane do Mongo Db?