JS nodo proxy HTTP colgar

B. Nizar:

Tengo un proxy HTTP proxy cualquier sitio web e inyectar algún archivo JS personalizado antes de servir la parte posterior HTML al cliente. Cada vez que intento acceder a la página web proxy, ya que colgará o el navegador parece cargar de forma indeterminada. Pero cuando compruebo el código HTML, he conseguido con éxito para inyectar mi costumbre archivo JavaScript. Aquí está el código:

const cheerio = require('cheerio');
const http = require('http');
const httpProxy = require('http-proxy');
const { ungzip } = require('node-gzip');

_initProxy(host: string) {
    let proxy = httpProxy.createProxyServer({});
    let option = {
        target: host,
        selfHandleResponse: true
    };

    proxy.on('proxyRes', function (proxyRes, req, res) {
        let body = [];
        proxyRes.on('data', function (chunk) {
            body.push(chunk);
        });
        proxyRes.on('end', async function () {
            let buffer = Buffer.concat(body);
            if (proxyRes.headers['content-encoding'] === 'gzip') {
                try {
                    let $ = null;
                    const decompressed = await ungzip(buffer);
                    const scriptTag = '<script src="my-customjs.js"></script>';
                    $ = await cheerio.load(decompressed.toString());
                    await $('body').append(scriptTag);
                    res.end($.html());
                } catch (e) {
                    console.log(e);
                }
            }
        });
    });

    let server = http.createServer(function (req, res) {
        proxy.web(req, res, option, function (e) {
            console.log(e);
        });
    });

    console.log("listening on port 5051");
    server.listen(5051);
}

Por favor alguien puede decirme si estoy haciendo mal nada, parece que el nodo-http-proxy está muriendo mucho y no se puede confiar mucho en él desde el proxy puede trabajar a veces y morir en la próxima carrera, dependiendo de cuántas veces me encontré con el servidor.

B. Nizar:

Terminé de escribir un pequeño servidor de Python usando CherryPy y con proxy de la aplicación web con mitmproxy. Ahora todo está funcionando sin problemas. Tal vez lo estaba haciendo mal con el nodo-http-proxy pero también se convirtió en escéptico acerca de su uso en un entorno de producción.

Supongo que te gusta

Origin http://10.200.1.11:23101/article/api/json?id=399183&siteId=1
Recomendado
Clasificación