Improved error handling

This commit is contained in:
Petr Sloup 2016-03-02 17:12:32 +01:00
parent 40a7ee5e62
commit 75e5fd1018

View file

@ -71,7 +71,7 @@ module.exports = function(maps, options, prefix) {
y = parts[5].split('.')[0] | 0; y = parts[5].split('.')[0] | 0;
source.getTile(z, x, y, function(err, data, headers) { source.getTile(z, x, y, function(err, data, headers) {
if (err) { if (err) {
//console.log('MBTiles error, serving empty'); //console.log('MBTiles error, serving empty', err);
callback(null, { data: new Buffer(0) }); callback(null, { data: new Buffer(0) });
} else { } else {
var response = {}; var response = {};
@ -95,7 +95,8 @@ module.exports = function(maps, options, prefix) {
gzip: true gzip: true
}, function(err, res, body) { }, function(err, res, body) {
if (err) { if (err) {
callback(err); //console.log('HTTP tile error', err);
callback(null, { data: new Buffer(0) });
} else if (res.statusCode == 200) { } else if (res.statusCode == 200) {
var response = {}; var response = {};
@ -113,7 +114,8 @@ module.exports = function(maps, options, prefix) {
callback(null, response); callback(null, response);
} else { } else {
callback(new Error(JSON.parse(body).message)); //console.log('HTTP error', JSON.parse(body).message);
callback(null, { data: new Buffer(0) });
} }
}); });
} }
@ -303,6 +305,7 @@ module.exports = function(maps, options, prefix) {
bbox: areaParams.bbox, bbox: areaParams.bbox,
center: areaParams.center, center: areaParams.center,
format: format, format: format,
limit: 4097,
getTile: function(z, x, y, callback) { getTile: function(z, x, y, callback) {
return getTile(z, x, y, scale, format, function(err, data, headers) { return getTile(z, x, y, scale, format, function(err, data, headers) {
if (!err && data == null) { if (!err && data == null) {
@ -313,14 +316,22 @@ module.exports = function(maps, options, prefix) {
}); });
} }
}; };
try {
return abaculus(params, function(err, data, headers) { return abaculus(params, function(err, data, headers) {
if (err && !err.status) { if (err && !err.status) {
return next(err); return next(err);
} }
if (headers) {
headers['Content-Type'] = 'image/' + format;
res.set(headers); res.set(headers);
}
res.status((err && err.status) || 200); res.status((err && err.status) || 200);
return res.send((err && err.message) || data); return res.send((err && err.message) || data);
}); });
} catch (e) {
res.status(400);
return res.send(e.message);
}
}; };
var staticPattern = var staticPattern =