Improved error handling
This commit is contained in:
parent
40a7ee5e62
commit
75e5fd1018
1 changed files with 34 additions and 23 deletions
57
src/app.js
57
src/app.js
|
@ -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,25 +95,27 @@ 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 = {};
|
||||||
|
|
||||||
if (res.headers.modified) {
|
if (res.headers.modified) {
|
||||||
response.modified = new Date(res.headers.modified);
|
response.modified = new Date(res.headers.modified);
|
||||||
}
|
}
|
||||||
if (res.headers.expires) {
|
if (res.headers.expires) {
|
||||||
response.expires = new Date(res.headers.expires);
|
response.expires = new Date(res.headers.expires);
|
||||||
}
|
}
|
||||||
if (res.headers.etag) {
|
if (res.headers.etag) {
|
||||||
response.etag = res.headers.etag;
|
response.etag = res.headers.etag;
|
||||||
}
|
}
|
||||||
|
|
||||||
response.data = body;
|
response.data = body;
|
||||||
|
|
||||||
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) {
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
return abaculus(params, function(err, data, headers) {
|
try {
|
||||||
if (err && !err.status) {
|
return abaculus(params, function(err, data, headers) {
|
||||||
return next(err);
|
if (err && !err.status) {
|
||||||
}
|
return next(err);
|
||||||
res.set(headers);
|
}
|
||||||
res.status((err && err.status) || 200);
|
if (headers) {
|
||||||
return res.send((err && err.message) || data);
|
headers['Content-Type'] = 'image/' + format;
|
||||||
});
|
res.set(headers);
|
||||||
|
}
|
||||||
|
res.status((err && err.status) || 200);
|
||||||
|
return res.send((err && err.message) || data);
|
||||||
|
});
|
||||||
|
} catch (e) {
|
||||||
|
res.status(400);
|
||||||
|
return res.send(e.message);
|
||||||
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
var staticPattern =
|
var staticPattern =
|
||||||
|
|
Loading…
Reference in a new issue