Modifier les en-têtes de réponse avant de tuyauterie
J'ai un petit proxy pour certaines demandes en Express. À l'aide de la demande bibliothèque, j'ai assez concis code:
app.use('/api', function(req, res) {
var url = rewriteUrl(req.url);
var newReq = request(url, function(error) {
if (error) {
logError(error);
}
});
req.pipe(newReq).pipe(res);
});
Mon problème est que la réponse de l'API serveur contient un tas de indésirables les en-têtes que je veux supprimer. Comment puis-je supprimer les en-têtes de la réponse de newReq
avant de tuyauterie à res
?
Vous devez vous connecter pour publier un commentaire.
Avec le
request
module, il n'est actuellement pas possible (à ma connaissance) à avoir une fonction de rappel et pas de tampon de la réponse du serveur. Donc, voici comment vous pourriez le faire avec le haut -http.request
:res.writeHead
est un objet.mscdex réponse a fonctionné pour moi, mais j'ai trouvé une façon qui, je pense, est un peu plus propre. Dans mon code, j'ai eu cette ligne:
J'ai remplacé que par ces lignes:
Il est facile avec la demande.
Il n'y a plus élégante façon de modifier/supprimer des en-têtes par la fixation d'un tuyau de filtre comme suit:
pipefilter
documenté n'importe où. L'objet renvoyé parrequest(url)
n'a pas de pipefilter bien pour moi. Puis-je juste l'attacher de toute façon et il sera utilisé?