| 'use strict'; |
| |
| /** |
| * This plugin transforms content. Since this transformation (uppercase) is |
| * trivial, it can do the transformation on a chunk-by-chunk basis or all-at-once. |
| * For most non-trivial cases, this plugin should be preceded by the accumulate |
| * plugin, which will accumulate chunks and deliver them concatenated as one data |
| * Buffer to the onend handler. |
| */ |
| module.exports.init = function(config, logger, stats) { |
| |
| // perform content transformation here |
| // the result of the transformation must be another Buffer |
| function transform(data) { |
| return new Buffer(data.toString().toUpperCase()); |
| } |
| |
| return { |
| |
| ondata_response: function(req, res, data, next) { |
| // transform each chunk as it is received |
| next(null, data ? transform(data) : null); |
| }, |
| |
| onend_response: function(req, res, data, next) { |
| // transform accumulated data, if any |
| next(null, data ? transform(data) : null); |
| }, |
| |
| ondata_request: function(req, res, data, next) { |
| // transform each chunk as it is received |
| next(null, data ? transform(data) : null); |
| }, |
| |
| onend_request: function(req, res, data, next) { |
| // transform accumulated data, if any |
| next(null, data ? transform(data) : null); |
| } |
| |
| }; |
| |
| } |