Ich bin ein relativer Neuling von Node.js. Zwei Tage habe ich versucht, den Hauptteil einer Anfrage in Node.js zu ändern und dann weiterzuleiten. Für das Proxying verwende ich http-proxy
Modul.Modify Anfrage Körper und dann Proxying in Node.js
Ich muss das Passwort eines Benutzers in einem JSON-Objekt abfangen, es verschlüsseln und das neue verschlüsselte Passwort in den Anfragetext einfügen.
Das Problem ist, dass jedes Mal, wenn ich versuche, die Anfrage Körper sammeln ich es verbrauchen (d. H. Mit body-parser
). Wie kann ich diese Aufgabe erfüllen? Ich weiß, dass die Anfrage in Knoten gesehen hat einen Stream.
Aus Gründen der Vollständigkeit verwende ich express
, um mehrere Operationen vor dem Proxying zu verketten.
EDIT
Die Tatsache, dass ich an den Proxy haben die Anforderung nicht nutzlos. Es folgt dem Code, den ich versuche zu verwenden.
function encipher(req, res, next){
var password = req.body.password;
var encryptionData = Crypto().saltHashPassword(password);
req.body.password = encryptionData.passwordHash;
req.body['salt'] = encryptionData.salt;
next();
}
server.post("/users", bodyParser.json(), encipher, function(req, res) {
apiProxy.web(req, res, {target: apiUserForwardingUrl});
});
Der Server (von Spring MVC gemacht REST) geben Sie mir die Ausnahme Failed to read HTTP message: org.springframework.http.converter.HttpMessageNotReadableException: Could not read document: null
Das gibt mir den Fehler "Kann Header nicht festlegen, nachdem sie gesendet werden.". Vgl. https://github.com/nodejitsu/node-http-proxy/issues/1168 und https://github.com/nodejitsu/node-http-proxy/issues/908. –