Меня беспокоит изменение (запись) ответа прокси-сервера 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);
Кто-нибудь может подсказать мне, как этого добиться?