Enable express error handler (#4697)
* Propagate error to express handler in all situations * Call the default error handler if `enableExpressErrorHandler` is truthy * Updating options interface and definitions * Testing express error handler * Test spec fixes * Fix test
This commit is contained in:
committed by
Florent Vilmart
parent
ced6b76ef5
commit
b22947d4ec
@@ -262,6 +262,12 @@ module.exports.ParseServerOptions = {
|
||||
"action": parsers.booleanParser,
|
||||
"default": false
|
||||
},
|
||||
"enableExpressErrorHandler": {
|
||||
"env": "PARSE_SERVER_ENABLE_EXPRESS_ERROR_HANDLER",
|
||||
"help": "Enables the default express error handler for all errors",
|
||||
"action": parsers.booleanParser,
|
||||
"default": false
|
||||
},
|
||||
"objectIdSize": {
|
||||
"env": "PARSE_SERVER_OBJECT_ID_SIZE",
|
||||
"help": "Sets the number of characters in generated object id's, default 10",
|
||||
|
||||
@@ -114,6 +114,8 @@ export interface ParseServerOptions {
|
||||
cacheMaxSize : ?number; // = 10000
|
||||
/* Use a single schema cache shared across requests. Reduces number of queries made to _SCHEMA. Defaults to false, i.e. unique schema cache per request. */
|
||||
enableSingleSchemaCache: ?boolean; // = false
|
||||
/* Enables the default express error handler for all errors */
|
||||
enableExpressErrorHandler: ?boolean; // = false
|
||||
/* Sets the number of characters in generated object id's, default 10 */
|
||||
objectIdSize: ?number; // = 10
|
||||
/* The port to run the ParseServer. defaults to 1337.
|
||||
|
||||
@@ -284,6 +284,9 @@ export function handleParseErrors(err, req, res, next) {
|
||||
res.status(httpStatus);
|
||||
res.json({ code: err.code, error: err.message });
|
||||
log.error(err.message, err);
|
||||
if (req.config && req.config.enableExpressErrorHandler) {
|
||||
next(err);
|
||||
}
|
||||
} else if (err.status && err.message) {
|
||||
res.status(err.status);
|
||||
res.json({ error: err.message });
|
||||
|
||||
Reference in New Issue
Block a user