2017-08-30 2 views
0

J'ai une base de fichier assez grande donc il est difficile de tout montrer.Express ne pas envoyer ou ne pas atteindre l'itinéraire

J'ai un serveur express avec certaines routes, l'une étant POST/set route. Presque chaque fois que j'essaie de poster quelque chose sur le serveur, je ne reçois aucune réponse. En fait, la première chose que je fais dans/set est de journaliser un simple hello et il ne semble même pas atteindre la route. J'utilise l'enregistreur Morgan pour consigner les demandes et voici ce que cela montre: Notice the first few request come through

Les premières requêtes ne passent pas par cette route particulière. ainsi que d'autres routes fonctionnent après. Cela arrive constamment sur cette route, mais il arrive parfois sur d'autres routes et j'obtiens une erreur "ERRCONRESET" chaque fois que cela se produit. Lorsque cela se produit, si j'envoie la demande tout de suite dans les quelques secondes qui suivent le premier échec, elle sera exécutée.

Un conseil serait grandement apprécié.

enter image description here

Il y a un manque de code, car il n'atteint pas la route, il peut être connecté laisser tomber la cause d'un middleware ou quelque chose express, mais il n'y a pas d'erreur cours d'enregistrement. Pour les middlewares, j'utilise "bodyParser", "session", "cookieParser", "casque", "morgan" "gzip" et "passeport". Il n'y a pas non plus de moyen d'authentification appliqué à cette route.

+1

Je comprends que vous avez une grande base de fichiers, mais il n'y a pas que je peux dire en fonction de 2 lignes de code. Pouvez-vous fournir le code d'itinéraire entier? Aussi, les premières demandes passent? Pouvez-vous donner un exemple du code qui représente l'exécution réussie? – jmcgui05

+0

Eh bien, j'ai seulement montré la route pour montrer que je me connecte bonjour. L'application ne va même pas aussi loin. Il ne se loge pas bonjour, donc il y a quelque chose qui se passe avant que cette route ne soit appelée à s'exprimer, peut-être qu'un middleware pourrait causer cela. Pour les middlewares j'ai "bodyParser", "session", "cookieParser", "casque", "gzip" et "passeport" – sookool99

+0

Got it. Plus au point que si vous pensez que le problème réside dans un domaine particulier du code, vous devriez le signaler. Sinon, nous ferions tous du spitballing, ce qui n'aiderait personne rapidement. – jmcgui05

Répondre

0

Je pense qu'express ne finit pas votre demande parce que vous n'envoyez jamais rien; donc la demande expire.

Essayez d'envoyer une simple chaîne au lieu de ne rien faire:

app.post('/set', (req, res) => { 
    res.send('hello'); 
    }); 
+0

Il envoie une réponse juste, plus tard. Si l'itinéraire était appelé, il se connecterait d'abord "bonjour" à la sortie, alors oui serait timeout (s'il ne renvoie jamais de réponse), mais il n'atteint jamais le journal qui est la première ligne de la route. – sookool99

+0

Je reproduis le délai d'expiration quand je n'envoie pas de réponse, mais le journal 'bonjour' est bien affiché. Le problème doit donc venir d'une autre partie de votre code, ou d'un middleware ... Vérifiez si vous n'avez pas d'autre route '/ set' dans votre application, ou essayez de publier le code minimal pour reproduire le problème ... – Getz

+0

Etes-vous sûr que votre console.log() est écrite dans votre fichier journal Morgan? – Getz