From 448307327ca24a89a4c654be2d0742bb039b3000 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Fl=C3=A1via=20Penim?= Date: Tue, 9 Jan 2018 11:04:12 +0000 Subject: [PATCH] Handle malformed JSON body Based on https://github.com/expressjs/body-parser/issues/122 --- src/server.js | 24 ++++++++++++++++++------ 1 file changed, 18 insertions(+), 6 deletions(-) diff --git a/src/server.js b/src/server.js index 118154b..c9201fd 100644 --- a/src/server.js +++ b/src/server.js @@ -1,20 +1,32 @@ const express = require('express'); const bodyParser = require('body-parser'); -var runValidation = require('./validator'); +const runValidation = require('./validator'); -var app = express(); +const app = express(); app.use(bodyParser.json()); +app.use(function(err, req, res, next) { + if (err instanceof SyntaxError && err.status === 400 && 'body' in err) { + res.status(400).send({"error": "Malformed JSON please check your request body."}); + } +}); + app.post('/validate', (req, res) => { console.log('Received validation request!'); + var inputSchema = req.body.schema; var submittable = req.body.submittable; - runValidation(inputSchema, submittable).then((output) => { - res.status(200).send(output); - // TODO - handle malformed schema - }); + if (inputSchema && submittable) { + runValidation(inputSchema, submittable).then((output) => { + res.status(200).send(output); + }); + } else { + res.status(400).send( + {"error": "Both schema and submittable are required to execute validation."} + ); + } });