Я хотел бы создать пользовательский интерфейс, который чем-то похож на Fiddler от Telerik. Для этого я создал прокси с помощью node-http-proxy, который отлично работает: -)
Но теперь у меня проблема с тем, как я сопоставляю ответ на мой запрос, и я абсолютно не представляю, что я могу попробовать.
Вот мой текущий код:
let httpProxy = require('http-proxy');
let connect = require('connect');
let bodyParser = require('body-parser');
let http = require('http');
let proxy = httpProxy.createProxyServer();
let app = connect()
.use(bodyParser.json()) //json parser
.use((req, res) => {
let options = {
target: "myTargetHere"
};
proxy.web(req, res, options);
});
http.createServer(app).listen(8000);
proxy.on("proxyReq", (proxyReq, req, res) => {
if (req.body) {
let bodyData = JSON.stringify(req.body);
let bodyLength = Buffer.byteLength(bodyData)
proxyReq.setHeader("Content-Length", bodyLength);
proxyReq.write(bodyData);
}
});
proxy.on('proxyRes', (proxyRes, req, res) => {
let body = new Buffer.alloc(0);
let bodyLength = 0;
proxyRes.on('data' , data => {
process.stdout.write("c ");
body = Buffer.concat([body, data]);
});
proxyRes.on("end", () => {
bodyLength = Buffer.byteLength(body);
body = body.toString();
console.log("response body length: ", bodyLength);
});
});
Кто-нибудь знает, как я могу сопоставить ответ в proxy.on('proxyRes', ...)
с моим запросом в proxy.on('proxyReq', ...)
? Есть ли что-то уникальное в каждом запросе / ответе?