Узел прокси-сервера изменяет ответ после запроса в базе данных - PullRequest
0 голосов
/ 29 июня 2018

Меня беспокоит изменение (запись) ответа прокси-сервера nodejs.

Я хочу добиться автоматического входа в систему для одного сайта через прокси-сервер узла, и для этого мне нужно выполнить запрос в базе данных, после чего я могу изменить ответ, но кажется, что запрос завершен до req.write и получен Error: write after end

Ниже приведена моя реализация.

var express = require('express');
var proxy = require('http-proxy-middleware');

var options = {
   target: 'http://example.com/', // target host
   changeOrigin: true,
   onProxyReq: function onProxyReq(proxyReq, req, res) {
    var _write = res.write;
    var body = "";

    proxyReq.on('data', function(data) {
        data = data.toString('utf-8');
        body += data;
    });

    res.write = function (data) {
        try{
            //I have database query here instead of setTimeout
            setTimeout(function(){

                /* Modified response here and write */
                _write.call(res, data); //can't write because req already end

            },3000);
        } catch (err) {
            console.log('err',err);
        }
    }
  }
}

// create the proxy (without context)
var exampleProxy = proxy(options);
// mount `exampleProxy` in web server
var app = express();
app.use('/', exampleProxy);
app.listen(8080); 

Кто-нибудь может подсказать мне, как этого добиться?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...