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

perché ricevo favicon.ico quando utilizzo il metodo findOne per i percorsi express dei parametri?

Quando visiti un sito Web (qualsiasi URL su quel sito Web), un browser in genere invia anche una richiesta allo stesso dominio per /favicon.ico quindi controlla se il sito web offre un'icona per essere una rappresentazione visiva del sito.

Poiché stai utilizzando un percorso di livello superiore con caratteri jolly:

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

Questo verrà colpito dalla richiesta di /favicon.ico . Alcuni altri URL a cui potresti dover fare attenzione per essere richiesti sono:/robots.txt , /humans.txt , /sitemap.xml , /ads.txt .

Esistono diversi modi per aggirare questo problema:

  1. Il tuo percorso con caratteri jolly può prima controllare req.url o req.params.listRoute per vedere se è qualcosa che dovrebbe ignorare.

  2. Puoi posizionare altri percorsi di livello superiore che vuoi tenere fuori dal tuo percorso con caratteri jolly in una posizione prima di questo percorso in modo che non finiscano in questo.

  3. Non utilizzare un percorso con caratteri jolly di primo livello. Invece, usa qualcosa come /list/:listRoute quindi non corrisponderà automaticamente a nessuna richiesta http di livello superiore. L'utilizzo di un percorso con caratteri jolly di livello superiore interferisce con altri usi futuri del tuo sito e può creare compatibilità con le versioni precedenti quando desideri aggiungere altri percorsi di livello superiore al tuo sito. Immagina se in futuro volessi aggiungere /contact o /login o /logout . Questi sono tutti in conflitto con /:listRoute .