webpack config-proxy-request-body-Protokollierung

Webpack dev-server-proxy-config-Dokumentation sehen Sie hier:

https://webpack.js.org/configuration/dev-server/#devserver-proxy

sagt, es verwendet http-proxy-middleware:

https://github.com/chimurai/http-proxy-middleware#http-proxy-events

Mithilfe der onProxyRes Funktion dokumentiert in dem oben genannten link habe ich das folgende tun:

function onProxyRes(proxyRes, req, res) {
    proxyRes.headers['x-added'] = 'foobar';     //add new header to response
    delete proxyRes.headers['x-removed'];       //remove header from response
    console.log(req.headers)                    //log headers
    console.log(req.body)                  //undefined
    console.log(proxyReq.body)             //undefined
}

Mein problem, obwohl alles andere funktioniert Super – ich kann mich nicht anmelden den Request-Body – es gibt undefined

Weiß wer, wie zu Lesen der request-body zu debugging-Zwecken? Kann ich irgendwie verwenden müssen, die npm body-parser Modul? Wenn ja, wie? thx

InformationsquelleAutor danday74 | 2018-03-20



2 Replies
  1. 2

    Ich versuchte die Protokollierung der Anfrage mit dem ausdrücklichen Körper-parser – Modul, sondern es verursacht die Anfragen zu hängen. Mit der Körper Modul zum protokollieren der Anfrage Körper fixiert es.

    const anyBody = require('body/any')
    onProxyReq(proxyReq, req, res) {
        anyBody(req, res, function (err, body) {
            if (err) console.error(err)
            console.log(body)
        })
    })

    Beachten Sie, dass ich auch diesen Ansatz, innerhalb express wie folgt:

    app.use((req, res, next) => {
        anyBody(req, res, function (err, body) {
            if (err) console.error(err)
            console.log(body)
        })
        next()
    })
    • Während dieser code kann die Frage beantworten, die Bereitstellung zusätzlicher Rahmen an, wie und/oder warum es das problem behebt, das würde verbessern die Antwort, die langfristigen Wert.
  2. 1

    Löste ich ein ähnliches problem mit body-parser.

    Ich habe versucht, ändern Sie den request-body vor dem senden an den server, und es verursacht die Anfrage zu hängen, vielleicht weil die änderung der Körper, die Content-Length von der Anfrage wurde kein weiteres matching (was es abgeschnitten).

    War die Lösung „Größenanpassung“ Content-Length vor dem schreiben der neuen request-body:

    var bodyParser = require('body-parser');   
    
    devServer: {
        before: function (app, server) {
            app.use(bodyParser.json());
        },
        onProxyReq: function (proxyReq, req, res) {
            req.body = {
                ...req.body,
                myProperty: "myPropertyValue"
            };
    
            const body = JSON.stringify(req.body);
    
            proxyReq.setHeader('Content-Length', Buffer.byteLength(body));
    
            proxyReq.write(body);
        }
    }

    Nicht sicher, aber in deinem Fall könnte es sein, dass die Anfrage wurde gekürzt, indem das hinzufügen/entfernen von Kopfzeilen, wodurch es zu hängen.

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.