sql >> Base de Datos >  >> NoSQL >> MongoDB

¿Por qué obtengo favicon.ico cuando estoy usando el método findOne para rutas de parámetros exprés?

Cuando visita un sitio web (cualquier URL en ese sitio web), un navegador normalmente también enviará una solicitud a ese mismo dominio para /favicon.ico así que vea si el sitio web ofrece un icono para ser una representación visual del sitio.

Dado que está utilizando una ruta de nivel superior con comodines:

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

Eso se verá afectado por la solicitud de /favicon.ico . Algunas otras direcciones URL que también debe tener en cuenta para que no se le soliciten son:/robots.txt , /humans.txt , /sitemap.xml , /ads.txt .

Hay varias formas de evitar esto:

  1. Su ruta comodín puede verificar primero req.url o req.params.listRoute para ver si es algo que debería ignorar.

  2. Puede colocar otras rutas de nivel superior que desee mantener fuera de su ruta comodín en una posición anterior a esta ruta para que no terminen en esta.

  3. No utilice una ruta comodín de nivel superior. En su lugar, use algo como /list/:listRoute por lo que no coincidirá automáticamente con ninguna solicitud http de nivel superior. Su uso de una ruta comodín de nivel superior interfiere con otros usos futuros de su sitio y puede crear compatibilidad con versiones anteriores cuando desee agregar otras rutas de nivel superior a su sitio. Imagínese si en algún momento en el futuro desea agregar /contact o /login o /logout . Todos ellos entran en conflicto con /:listRoute .