try/catch around JSON parse in #getGrid.

This commit is contained in:
Young Hahn
2012-04-04 23:34:07 -04:00
parent 6378574ee9
commit c6c1a3f20e

View File

@@ -218,17 +218,21 @@ MBTiles.prototype.getGrid = function(z, x, y, callback) {
: row.grid,
function(err,buffer) {
if (err) return callback(new Error('Grid is invalid:' + err.message));
var data = rows.reduce(function(memo, r) {
memo[r.key_name] = JSON.parse(r.key_json);
return memo;
}, {});
var result = _(JSON.parse(buffer.toString())).extend({ data: data });
try {
var data = rows.reduce(function(memo, r) {
memo[r.key_name] = JSON.parse(r.key_json);
return memo;
}, {});
var result = JSON.parse(buffer.toString());
} catch(err) {
return callback(new Error('Grid is invalid:' + err.message));
}
var options = {
'Content-Type': 'text/javascript',
'Last-Modified': new Date(that._stat.mtime).toUTCString(),
'ETag': that._stat.size + '-' + Number(that._stat.mtime)
};
callback(null, result, options);
callback(null, _(result).extend({data:data}), options);
});
}
);