2016-08-06 2 views
1

Я использую Express 4, и я использую промежуточное программное http-proxy-middleware (https://github.com/chimurai/http-proxy-middleware), и имеющие следующие вопросыУзел HTTP-прокси/HTTP-прокси-промежуточного - Как манипулировать прокси-ответ

В нормальном Кстати, я могу сделать следующее manupulate ответа перед возвращением к клиенту

app.get('/v1/users/:username', function(request, response, next) { 
    var username = request.params.username; 
    findUserByUsername(username, function(error, user) { 
     if (error) return next(error); 
     return response.render('user', user); 
    }); 
}); 

Но как я выполнить пользовательскую логику, если я использую прокси-сервер, скажем, я хочу, чтобы манипулировать некоторые данные, прежде чем ответ клиент? Есть ли хороший способ сделать это с помощью этого промежуточного программного обеспечения?

app.use('/api', proxy({target: 'http://www.example.org', changeOrigin: true})); 

Вот Обратной для вопроса я поставил в GitHub, а также - https://github.com/chimurai/http-proxy-middleware/issues/97

Любая помощь будет оценена.

+0

Фактически, используя эту помощь https://github.com/langjt/node-http-proxy-json Но в настоящее время она поддерживает только «gzip» и «deflate» в качестве своего типа содержимого. –

ответ

0

вот мой ответ,

onProxyRes :function(proxyRes, req, res){ 
     var _write = res.write; 
     var output; 
     var body = ""; 
     proxyRes.on('data', function(data) { 
      data = data.toString('utf-8'); 
      body += data; 
     }); 
     res.write = function (data) { 
     try{ 
/*** something detect if data is all download.my data is json,so I can do by this***/ 
      eval("output="+body) 
      output = mock.mock(output) 
      _write.call(res,JSON.stringify(output)); 
     } catch (err) {} 
     } 
    } 

добавить опцию onProxyRes на HTTP-прокси-промежуточного использовать событие данных на proxyRes, чтобы получить выход затем изменить выход в res.write

+0

Разве это не хаки? Вы переопределяете метод записи объекта res? – ortonomy

Смежные вопросы