| if (global.GENTLY) require = GENTLY.hijack(require); |
| |
| // This is a buffering parser, not quite as nice as the multipart one. |
| // If I find time I'll rewrite this to be fully streaming as well |
| var querystring = require('querystring'); |
| |
| function QuerystringParser(maxKeys) { |
| this.maxKeys = maxKeys; |
| this.buffer = ''; |
| } |
| exports.QuerystringParser = QuerystringParser; |
| |
| QuerystringParser.prototype.write = function(buffer) { |
| this.buffer += buffer.toString('ascii'); |
| return buffer.length; |
| }; |
| |
| QuerystringParser.prototype.end = function() { |
| var fields = querystring.parse(this.buffer, '&', '=', { maxKeys: this.maxKeys }); |
| for (var field in fields) { |
| this.onField(field, fields[field]); |
| } |
| this.buffer = ''; |
| |
| this.onEnd(); |
| }; |
| |