Делал proxy на Node.js.
Некоторые типы ответов сервера мне нужно было парсить и подменять небольшие кусочки.
Создаю всё функцией
2 4 6 8 10 12 14 16 18 20 | { deletereq.headers['accept-encoding'];// to prevent gzipping data on api server hostname:apiHost, path:req.url, headers:req.headers proxy=http.request(options,cb||noop); proxy.on('response',function(proxyResponse){ res.writeHead(proxyResponse.statusCode,proxyResponse.headers); } |
Typora, Inkdrop, and Haroopad are probably your best bets out of the 33 options considered. 'Live preview' is the primary reason people pick Typora over the competition. This page is powered by a. Own text, save the file with the.md extension and then you can toggle the visualization of the editor between the code and the preview of the Markdown.
Но тело ответа всегда приходит буфером.
Много всякого читал, как вместо буферов принимать строки, пытался через промежуточный поток типа transform всё сделать (http://nodejs.org/api/stream.html#stream_class_stream_transform_1), но ничего не получалось.
А потом случайно наткнулся на пост http://stackoverflow.com/questions/12121775/convert-buffer-to-utf8-string#comment31200460_12122668. Достаточно всего лишь:
2 4 6 8 10 | varresponseBody='; responseBody+=chunk.toString('utf8'); proxyResponse.on('end',function(){ }); |
Node Markdown Parser
О чём ещё стоит не забыть — нужно запретить сжатие на сервере (delete req.headers[‘accept-encoding’]) или разжимать на ноде.
Ну и напоследок хорошая большая статья про потоки в node.js 0.10+: https://github.com/substack/stream-handbook/blob/master/readme.markdown