Skip to content

Commit c178acd

Browse files
hybeatsn.andryukhindplewis
authored
fixing enableExpressErrorHandler logic (#6423)
* fixing enableExpressErrorHandler logic * Fix tests Co-authored-by: n.andryukhin <[email protected]> Co-authored-by: Diamond Lewis <[email protected]>
1 parent 927676b commit c178acd

File tree

2 files changed

+7
-17
lines changed

2 files changed

+7
-17
lines changed

spec/EnableExpressErrorHandler.spec.js

Lines changed: 4 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -9,8 +9,6 @@ describe('Enable express error handler', () => {
99
const masterKey = 'anOtherTestMasterKey';
1010
let server;
1111

12-
let lastError;
13-
1412
const parseServer = ParseServer.ParseServer(
1513
Object.assign({}, defaultConfiguration, {
1614
appId: appId,
@@ -25,8 +23,8 @@ describe('Enable express error handler', () => {
2523
server = app.listen(12667);
2624

2725
app.use(function(err, req, res, next) {
28-
next;
29-
lastError = err;
26+
expect(err.message).toBe('Object not found.');
27+
next(err);
3028
});
3129

3230
request({
@@ -43,15 +41,8 @@ describe('Enable express error handler', () => {
4341
fail('Should throw error');
4442
})
4543
.catch(response => {
46-
const reqError = response.data;
47-
expect(reqError).toBeDefined();
48-
expect(lastError).toBeDefined();
49-
50-
expect(lastError.code).toEqual(101);
51-
expect(lastError.message).toEqual('Object not found.');
52-
53-
expect(lastError.code).toEqual(reqError.code);
54-
expect(lastError.message).toEqual(reqError.error);
44+
expect(response).toBeDefined();
45+
expect(response.status).toEqual(500);
5546
})
5647
.then(() => {
5748
server.close(done);

src/middlewares.js

Lines changed: 3 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -325,6 +325,9 @@ export function allowMethodOverride(req, res, next) {
325325
export function handleParseErrors(err, req, res, next) {
326326
const log = (req.config && req.config.loggerController) || defaultLogger;
327327
if (err instanceof Parse.Error) {
328+
if (req.config && req.config.enableExpressErrorHandler) {
329+
return next(err);
330+
}
328331
let httpStatus;
329332
// TODO: fill out this mapping
330333
switch (err.code) {
@@ -337,13 +340,9 @@ export function handleParseErrors(err, req, res, next) {
337340
default:
338341
httpStatus = 400;
339342
}
340-
341343
res.status(httpStatus);
342344
res.json({ code: err.code, error: err.message });
343345
log.error('Parse error: ', err);
344-
if (req.config && req.config.enableExpressErrorHandler) {
345-
next(err);
346-
}
347346
} else if (err.status && err.message) {
348347
res.status(err.status);
349348
res.json({ error: err.message });

0 commit comments

Comments
 (0)