Express.JS: comment puis-je définir le statut de la réponse par nom, plutôt que le nombre?

OK, tout le monde sait 200 est OK et 404 n'est pas trouvé. Mais je pour des choses comme permanent vs redirection temporaire, ou de paiement, ou d'autres plus exotiques codes d'erreur HTTP, il peut être préférable de faire quelque chose comme:

response.status('REQUEST_ENTITY_TOO_LARGE');

Plutôt que de simplement utiliser un nombre magique qui est généralement considéré comme une mauvaise pratique. Je pourrais, bien sûr, ont 413:'REQUEST_ENTITY_TOO_LARGE" dans un objet, mais l'Express a déjà une copie du code d'état -> les mappages de nom et je préfère ne pas le dupliquer.

Comment puis-je spécifier un état de la réponse donnée par nom dans l'Express JS?

Modifier: merci @Akshat pour souligner http.STATUS_CODES. L'élaboration de sa réponse, puisque les valeurs sont eux-mêmes unique, on peut exécuter:

   var statusCodeByName = {};
   for ( var number in http.STATUS_CODES ) {
     statusCodeByName[http.STATUS_CODES[number]] = number
   }

Qui permet de:

  > statusCodeByName['Request Entity Too Large']
  '413'
Pourquoi est-il mauvais pour répondre à un certain nombre? Ce nombre est bien compris par les navigateurs, si vous essayez de ne pas les envoyer ensuite comment le navigateur de faire la différence entre une erreur 404 et 500 par exemple?
De toute évidence, nous allons avoir besoin d'envoyer un certain nombre sur le fil, qui est requis par la RFC2616. Mon intérêt à être en mesure de préciser le statut de nom (évidemment encore de l'envoyer par numéro) est pour des raisons de lisibilité.

OriginalL'auteur mikemaccana | 2013-08-19