diff --git a/lib/mbtiles.js b/lib/mbtiles.js index 8f66868..61eb640 100644 --- a/lib/mbtiles.js +++ b/lib/mbtiles.js @@ -231,16 +231,21 @@ MBTiles.prototype.grid = function(x, y, z, callback) { function(err, row, rows) { if (err) return callback(err); if (!row || !row.grid) return callback('Grid does not exist'); - var grid = zlib.inflate( - !Buffer.isBuffer(row.grid) - ? new Buffer(row.grid, 'binary') - : row.grid - ).toString(); - var data = rows.reduce(function(memo, r) { - memo[r.key_name] = JSON.parse(r.key_json); - return memo; - }, {}); - callback(null, _(JSON.parse(grid)).extend({ data: data })); + + try { + var grid = zlib.inflate( + !Buffer.isBuffer(row.grid) + ? new Buffer(row.grid, 'binary') + : row.grid + ).toString(); + var data = rows.reduce(function(memo, r) { + memo[r.key_name] = JSON.parse(r.key_json); + return memo; + }, {}); + callback(null, _(JSON.parse(grid)).extend({ data: data })); + } catch(err) { + callback(err); + } } ); };