API输入验证和避免重大陈述

时间:2016-02-18 11:04:24

标签: javascript node.js express

我正在努力确保在给出错误或缺失数据时我的API正常工作。

我目前有一个if语句,用于检查输入是否缺失。如果是的话,它会显示false,如果不是,则会显示带代码的其他大块。

e.g:

if (!req.body.email || !req.body.mobile || !req.body.gender ||
      !req.body.yearOfBirth) {
      res.json({ success: false, message: 'Missing request body parts'});
} else {
     //Continue
}

我想问的是,在代码可读性方面有更好的方法来实现这一点,在其中发生了很多其他很大的障碍,但对我来说似乎有些“不自然”。

感谢。

3 个答案:

答案 0 :(得分:1)

一种选择是为您要测试的字段使用数组:

var requiredFields = ['email', 'mobile', 'gender', 'yearOfBirth'];
if (requiredFields.every(function(field) { return req.body[field]; })) {
     //Continue
} else {
     res.json({ success: false, message: 'Missing request body'});
}

答案 1 :(得分:1)

有很多方法可以做到这一切,最受欢迎的似乎是:

两者都允许您定义一个所谓的Schema,它表示您希望接收并采取行动。

请注意,作业是由hapi团队创建的(hapi.js是express的替代品),您可能需要查看the express-joi模块,使其更适合与express一起使用。

答案 2 :(得分:0)

您可以巧妙地使用validate.js Declarative validations for JavaScript.