From 2138890f07be4fefdec32e7961a02c9cd5897ef5 Mon Sep 17 00:00:00 2001 From: Adrian Obelmejias Date: Mon, 15 Feb 2016 18:14:43 -0500 Subject: [PATCH] Throw 404 instead of 500 for cast error when fetching user --- src/controllers/users.js | 19 ++++++++++++++----- 1 file changed, 14 insertions(+), 5 deletions(-) diff --git a/src/controllers/users.js b/src/controllers/users.js index 9a9f304..078ad75 100644 --- a/src/controllers/users.js +++ b/src/controllers/users.js @@ -17,12 +17,21 @@ router.get('/', router.get('/:id', ensureUser, async (ctx) => { - const user = await User.findById(ctx.params.id, '-password -salt') - if (!user) { - ctx.throw(404) - } + try { + const user = await User.findById(ctx.params.id, '-password -salt') + if (!user) { + ctx.throw(404) + } - ctx.body = user + ctx.body = user + } catch (err) { + + if (err === 404 || err.name === 'CastError') { + ctx.throw(404) + } + + ctx.throw(500) + } } )