Express.js - Comment faire pour vérifier si les en-têtes ont déjà envoyé?
Je suis en train d'écrire une bibliothèque qui peut définir des en-têtes. Je veux donner un message d'erreur personnalisé si les en-têtes ont déjà envoyé, au lieu de simplement le laisser échouer avec le "ne Peut pas définir les en-têtes une fois qu'ils sont envoyés" message donné par Node.js. Alors comment vérifier si les en-têtes ont déjà envoyé?
- powerboy seriez-vous en mesure d'accepter l'autre réponse, car la actuellement accepté de répondre ne fonctionne plus? Voir @fiatjaf 's commentaire.
Vous devez vous connecter pour publier un commentaire.
EDIT: comme de l'express-4.x, vous devez utiliser res.headersSent. Notez également que vous pouvez utiliser setTimeout avant de vérifier, comme il n'est pas défini à true, immédiatement à la suite d'un appel à la res.send(). Source
Simple: Branchez la Réponse de la classe fournit une propriété publique "headerSent".
res.headerSent
est une valeur booléenne qui indique si les en-têtes ont déjà été envoyée au client.À partir du code source:
https://github.com/senchalabs/connect/blob/master/lib/patch.js#L22
headersSent
pasheaderSent
res.headersSent
réponse devrait être la solution retenue comme celle ci ne fonctionne plus.Nœud prend en charge la
res.headersSent
ces jours-ci, de sorte que vous pourriez/devriez l'utiliser. Il est en lecture seule valeur booléenne indiquant si les en-têtes ont déjà été envoyés.Voir http://nodejs.org/api/http.html#http_response_headerssent
Remarque: c'est la meilleure façon de le faire, par rapport à l'ancienne Connect "headerSent' bien que Niko mentionne.
D'autres réponses à point Node.js ou Github sites web.
Ci-dessous est de Expressjs site web: https://expressjs.com/en/api.html#res.headersSent