diff --git a/spec/EnableExpressErrorHandler.spec.js b/spec/EnableExpressErrorHandler.spec.js index 48b6047092..b81a0229f7 100644 --- a/spec/EnableExpressErrorHandler.spec.js +++ b/spec/EnableExpressErrorHandler.spec.js @@ -9,8 +9,6 @@ describe('Enable express error handler', () => { const masterKey = 'anOtherTestMasterKey'; let server; - let lastError; - const parseServer = ParseServer.ParseServer( Object.assign({}, defaultConfiguration, { appId: appId, @@ -25,8 +23,8 @@ describe('Enable express error handler', () => { server = app.listen(12667); app.use(function(err, req, res, next) { - next; - lastError = err; + expect(err.message).toBe('Object not found.'); + next(err); }); request({ @@ -43,15 +41,8 @@ describe('Enable express error handler', () => { fail('Should throw error'); }) .catch(response => { - const reqError = response.data; - expect(reqError).toBeDefined(); - expect(lastError).toBeDefined(); - - expect(lastError.code).toEqual(101); - expect(lastError.message).toEqual('Object not found.'); - - expect(lastError.code).toEqual(reqError.code); - expect(lastError.message).toEqual(reqError.error); + expect(response).toBeDefined(); + expect(response.status).toEqual(500); }) .then(() => { server.close(done); diff --git a/src/middlewares.js b/src/middlewares.js index 75923e713f..f8c52f29a2 100644 --- a/src/middlewares.js +++ b/src/middlewares.js @@ -321,6 +321,9 @@ export function allowMethodOverride(req, res, next) { export function handleParseErrors(err, req, res, next) { const log = (req.config && req.config.loggerController) || defaultLogger; if (err instanceof Parse.Error) { + if (req.config && req.config.enableExpressErrorHandler) { + return next(err); + } let httpStatus; // TODO: fill out this mapping switch (err.code) { @@ -333,13 +336,9 @@ export function handleParseErrors(err, req, res, next) { default: httpStatus = 400; } - res.status(httpStatus); res.json({ code: err.code, error: err.message }); log.error('Parse error: ', err); - if (req.config && req.config.enableExpressErrorHandler) { - next(err); - } } else if (err.status && err.message) { res.status(err.status); res.json({ error: err.message });