8000 Better routing error handling. · johnrees/arangodb@549f243 · GitHub
[go: up one dir, main page]

Skip to content

Commit 549f243

Browse files
committed
Better routing error handling.
1 parent fa21c81 commit 549f243

File tree

2 files changed

+18
-28
lines changed

2 files changed

+18
-28
lines changed

js/server/modules/org/arangodb/actions.js

Lines changed: 10 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -41,6 +41,7 @@ var _ = require("underscore");
4141

4242
var arangodb = require("org/arangodb");
4343
var foxxManager = require("org/arangodb/foxx/manager");
44+
var ErrorStackParser = require("error-stack-parser");
4445

4546
// -----------------------------------------------------------------------------
4647
// --SECTION-- private variables
@@ -1989,29 +1990,19 @@ function resultException (req, res, err, headers, verbose) {
19891990
'use strict';
19901991

19911992
var code;
1992-
var msg;
1993+
var msg = err.message;
19931994
var num;
19941995

19951996
var info = {};
1996-
var showTrace = false;
19971997

1998-
if (typeof verbose === 'string') {
1999-
msg = verbose;
2000-
info.exception = String(err);
2001-
showTrace = true;
2002-
}
2003-
else if (verbose || verbose === undefined) {
1998+
if (verbose !== false) {
20041999
info.exception = String(err);
2005-
msg = "An error has occurred during execution: " + info.exception;
2006-
showTrace = true;
2007-
}
2008-
else {
2009-
msg = String(err);
2010-
}
2011-
2012-
if (showTrace) {
20132000
if (err.stack) {
2014-
info.stacktrace = String(err.stack).split("\n");
2001+
err.stack = err.stack.replace(/\n+$/, '');
2002+
info.stacktrace = ErrorStackParser.parse(err);
2003+
}
2004+
if (typeof verbose === 'string') {
2005+
msg = verbose;
20152006
}
20162007
}
20172008

@@ -2024,10 +2015,10 @@ function resultException (req, res, err, headers, verbose) {
20242015
}
20252016

20262017
if (err.errorMessage !== "") {
2027-
if (typeof verbose === 'string') {
2018+
if (verbose !== false) {
20282019
info.message = err.errorMessage;
20292020
}
2030-
else {
2021+
if (typeof verbose !== 'string') {
20312022
msg = err.errorMessage;
20322023
}
20332024
}

js/server/modules/org/arangodb/foxx/routing.js

Lines changed: 8 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -335,16 +335,15 @@ var transformControllerToRoute = function (routeInfo, route, isDevel) {
335335
}
336336
}
337337
// Default Error Handler
338-
var body = {
339-
error: e.message || String(e)
340-
};
341-
if (isDevel) {
342-
body.stack = e.stack;
338+
if (!e.statusCode) {
339+
console.errorLines(
340+
"Error in foxx route '%s': '%s', Stacktrace:\n%s",
341+
route,
342+
e.message || String(e),
343+
e.stack || ""
344+
);
343345
}
344-
res.status(500);
345-
res.json(body);
346-
console.errorLines("Error in foxx route '%s': '%s', Stacktrace: %s",
347-
route, e.message || String(e), e.stack || "");
346+
actions.resultException(req, res, e, undefined, isDevel);
348347
}
349348
};
350349
};

0 commit comments

Comments
 (0)
0