0
votes

attraper plusieurs itinéraires pour une demande unique

dans ma node.js app, j'ai un routeur.get ("/ *) itinéraire pour la poignée Tout get demande, attendre le tableau de bord. Qui sera géré par routeur.get ( "/ tableau de bord") . Maintenant problème est routeur.get ("/ *") toujours appelé même si demande itinéraire est routeur.get ("/ tableau de bord") . Mon code est donné ci-dessous: XXX

Ici, lorsque la demande est routeur.get ("/ tableau de bord") , les deux routeur.get (" / *) et routeur.get ("/ tableau de bord") sont appelés. Et premier routeur.get ("/ tableau de bord") est appelé puis routeur.get ("/ *) est appelé.

tout ce que je veux est-ce juste ignorer routeur.get ("/ *) lorsque la demande vient pour routeur.get (" / tableau de bord ") .

Comment puis-je résoudre ce problème? Merci d'avance.


2 commentaires

C'est un comportement étrange. À une demande, seul l'un des rappels sera déclenché. Comment savez-vous que les deux sont appelées?


@RDRAHUL, j'ai ajouté une console.log sur les deux itinéraires


3 Réponses :


0
votes

Dans votre capture, tout itinéraire aurait besoin de supprimer le / . Il devrait ressembler à ce xxx


0 commentaires

0
votes

Vous pouvez utiliser app.get ('*', code> et aussi vous auriez besoin de la mettre après tous les autres points d'extrémité, quelque chose comme ceci:

app.get('/dashboard', (req, res) => {
  ...
});

app.get('/foo', (req, res) => {
  ...
});

app.get('*', (req, res) => {
  ...
});


0 commentaires

1
votes

Votre app.get ("*") invoquera toujours. Même si vous essayez d'invoquer app.get ("*") , vous remarquerez que la méthode invoque deux fois. C'est parce que, le navigateur tente d'obtenir un Fevicon pour votre site. Si vous console.log the req.originalurl , vous remarquerez que "/favicon.ico" est l'appel supplémentaire.

Pour résoudre ceci, vous pouvez définir un Favicon pour votre site. ou désactiver-le. xxx


1 commentaires

Je regarderai.