filadelfia_distributer/api/formidable/json_parser.js

31 lines
650 B
JavaScript
Raw Normal View History

if (global.GENTLY) require = GENTLY.hijack(require);
var Buffer = require('buffer').Buffer;
function JSONParser(parent) {
this.parent = parent;
this.chunks = [];
this.bytesWritten = 0;
}
exports.JSONParser = JSONParser;
JSONParser.prototype.write = function(buffer) {
this.bytesWritten += buffer.length;
this.chunks.push(buffer);
return buffer.length;
};
JSONParser.prototype.end = function() {
try {
var fields = JSON.parse(Buffer.concat(this.chunks));
for (var field in fields) {
this.onField(field, fields[field]);
}
} catch (e) {
this.parent.emit('error', e);
}
this.data = null;
this.onEnd();
};