Simpligy error middleware
This commit is contained in:
parent
c37e3f173d
commit
0eadfe6ee9
@ -1,35 +1,20 @@
|
|||||||
'use strict';
|
'use strict';
|
||||||
|
|
||||||
const debug = require('debug')('windshaft:cartodb:error-middleware');
|
|
||||||
|
|
||||||
module.exports = function errorMiddleware (/* options */) {
|
module.exports = function errorMiddleware (/* options */) {
|
||||||
return function error (err, req, res, next) {
|
return function error (err, req, res, next) {
|
||||||
const { logger } = res.locals;
|
const { logger } = res.locals;
|
||||||
var allErrors = Array.isArray(err) ? err : [err];
|
const errors = populateLimitErrors(Array.isArray(err) ? err : [err]);
|
||||||
|
let statusCode = findStatusCode(errors[0]);
|
||||||
|
|
||||||
allErrors = populateLimitErrors(allErrors);
|
logger.error({ errors });
|
||||||
|
|
||||||
// TODO REMOVE THIS THREE LINES PLEASE
|
const errorResponseBody = {
|
||||||
const label = err.label || 'UNKNOWN';
|
errors: errors.map(errorMessage),
|
||||||
err = allErrors[0] || new Error(label);
|
errors_with_context: errors.map(errorMessageWithContext)
|
||||||
allErrors[0] = err;
|
|
||||||
|
|
||||||
var statusCode = findStatusCode(err);
|
|
||||||
|
|
||||||
// If a callback was requested, force status to 200
|
|
||||||
if (req.query && req.query.callback) {
|
|
||||||
statusCode = 200;
|
|
||||||
}
|
|
||||||
|
|
||||||
allErrors.forEach((err) => debug('[%s ERROR] -- %d: %s, %s', err.label || 'UNKNOWN', statusCode, err, err.stack));
|
|
||||||
logger.error({ errors: allErrors });
|
|
||||||
|
|
||||||
var errorResponseBody = {
|
|
||||||
errors: allErrors.map(errorMessage),
|
|
||||||
errors_with_context: allErrors.map(errorMessageWithContext)
|
|
||||||
};
|
};
|
||||||
|
|
||||||
res.status(statusCode);
|
// If a callback was requested, force status to 200
|
||||||
|
res.status(req.query.callback ? 200 : statusCode);
|
||||||
|
|
||||||
if (req.query && req.query.callback) {
|
if (req.query && req.query.callback) {
|
||||||
res.jsonp(errorResponseBody);
|
res.jsonp(errorResponseBody);
|
||||||
|
Loading…
Reference in New Issue
Block a user