MongoDB
 sql >> Base de Dados >  >> NoSQL >> MongoDB

por que estou recebendo favicon.ico quando estou usando o método findOne para rotas de parâmetros expressos?


Quando você visita um site (qualquer URL nesse site), um navegador normalmente também envia uma solicitação para o mesmo domínio para /favicon.ico então veja se o site oferece um ícone para ser uma representação visual do site.

Como você está usando uma rota de nível superior curinga:
app.get('/:listRoute', ...)

Isso será atingido pela solicitação de /favicon.ico . Alguns outros URLs que você também pode precisar observar para serem solicitados são:/robots.txt , /humans.txt , /sitemap.xml , /ads.txt .

Existem várias maneiras de contornar isso:

  1. Sua rota curinga pode primeiro verificar req.url ou req.params.listRoute para ver se é algo que deve ignorar.

  2. Você pode colocar outras rotas de nível superior que deseja manter fora de sua rota curinga em uma posição antes dessa rota para que não acabem nesta.

  3. Não use uma rota curinga de nível superior. Em vez disso, use algo como /list/:listRoute portanto, não corresponderá automaticamente a nenhuma solicitação http de nível superior. Seu uso de uma rota curinga de nível superior interfere em outros usos futuros do seu site e pode criar compatibilidade com versões anteriores quando você quiser adicionar outras rotas de nível superior ao seu site. Imagine se em algum momento no futuro você quiser adicionar /contact ou /login ou /logout . Todos estão em conflito com /:listRoute .