L'ajout d'un crochet à l'échelle mondiale des journaux de tous nœud HTTP réponses node.js / express
Je suis en utilisant node.js et express pour gérer les requêtes et réponses HTTP. À l'aide de la http.ServerRequest
cas, je peux ajouter un crochet dans les journaux et les requêtes HTTP. Il ne semble pas être un semblable événement pour http.ServerResponse
et je me demande comment un journal de toutes les réponses HTTP avec un morceau de code que mon serveur envoie?
Il n'y a aucun moyen de le faire.
Merci, j'ai fini de singe de la correction du http.ServerResponse méthodes - elle fonctionnait très bien.
"request"
est émise par HttpServer
express qui s'étend. Le plus simple serait de remplacer .send
ou .end
avec une fine journalisation proxy.Merci, j'ai fini de singe de la correction du http.ServerResponse méthodes - elle fonctionnait très bien.
OriginalL'auteur Edmond Meinfelder | 2012-01-03
Vous devez vous connecter pour publier un commentaire.
J'ai créé un package qui est quelque chose comme ça, d'un besoin similaire. Découvrez express-demande-enregistreur
Le cœur du programme est comme ça, il contient un certain code supplémentaire de sorte que vous pouvez avoir votre propre clé-valeur de la carte de données qui seront consignées par demande:
Le code ci-dessus fonctionne en tant que middleware dans l'express. Jetez un coup d'oeil au code, et si vous avez d'autres questions, prenez contact avec moi ici ou github.
res
devrait générer un"finish"
événement que vous pouvez utiliser à la place de l'utilisation de proxy à la fin de la méthode.OriginalL'auteur staackuser2
Il n'est plus nécessaire pour monkeypatch, tant qu'il y a un finition événement émis sur fonction end() depuis node.js 0.8.12.
En fait, il a d'abord été publié comme fin dans 0.8.8 (vérifiez aussi cette) mais elle éclata en écriture flux' duplex, de sorte qu'il a été renommé à la fin.
end
est émise, pasfinish
. Les commits que vous avez lié sont inclus dans la version 0.9 / 0.10 branches (c'est maintenant affichée par GH ci-dessous le message de commit depuis une couple de semaines).Est est possible de recevoir un message de réponse sur la fin de l'événement?
end
semble fonctionner pour moi aussi, alors quefinish
ne le fait pas. Je suis confus!OriginalL'auteur Dario Castañé
Si vous ne souhaitez que log (des demandes et des réponses), découvrez express-winston. Contrairement à morgan, il peut même enregistrer la demande/le corps de la réponse.
Exemple en coffeescript:
OriginalL'auteur Manuel Darveau
Si vous utilisez express' res.send() pour toutes les réponses, et vous n'avez pas l'esprit de l'insertion de code dans le module express, vous pouvez insérer
en
.../node_modules/express/lib/response.js:
Je ne pense pas que vous pouvez écouter, pour un non-événement d'erreur - "proximité" ne semble pas tirer sur res.send();. Je suppose que c'est parce que send() est toujours appelé quelque part dans votre code.
OriginalL'auteur Ray