Sails JS 通过策略请求验证
Sails JS request validations through policies
我们正在使用 Sails JS 构建一个 API,它将仅提供 JSON 响应。我可以将所有请求验证规则存储在策略中吗?这样我的主要应用程序逻辑(控制器)就会看起来很干净。
优点:应用程序逻辑会很干净。
缺点:最终会创建很多策略。
有没有其他更好的方法来保持代码清洁并单独维护验证规则?
对于验证,我们可以使用像 express-validator.
这样的库
不确定这是否是最好的方法,但您可以创建一个帮助程序来执行您的验证。助手可以将每种类型的验证作为其输入,并为每种类型接受数组。所以在你的控制器中,你会这样调用助手:
var errorObject = sails.helpers.validate.with({
alphanumeric: [inputs.userName, inputs.displayName],
isEmail: [inputs.userEmail],
...
...
})
然后您的助手可以获取这些输入中的每一个并循环遍历数组以进行验证检查。如果发生验证错误,return 错误对象的内容。如果不是,return 一个空对象。这样在你的控制器中你可以做这样的事情:
if(errorObject){throw errorObject}
尽管如此,您仍然需要在每个控制器中包含您想要的所有出口。
我们正在使用 Sails JS 构建一个 API,它将仅提供 JSON 响应。我可以将所有请求验证规则存储在策略中吗?这样我的主要应用程序逻辑(控制器)就会看起来很干净。
优点:应用程序逻辑会很干净。
缺点:最终会创建很多策略。
有没有其他更好的方法来保持代码清洁并单独维护验证规则?
对于验证,我们可以使用像 express-validator.
这样的库不确定这是否是最好的方法,但您可以创建一个帮助程序来执行您的验证。助手可以将每种类型的验证作为其输入,并为每种类型接受数组。所以在你的控制器中,你会这样调用助手:
var errorObject = sails.helpers.validate.with({
alphanumeric: [inputs.userName, inputs.displayName],
isEmail: [inputs.userEmail],
...
...
})
然后您的助手可以获取这些输入中的每一个并循环遍历数组以进行验证检查。如果发生验证错误,return 错误对象的内容。如果不是,return 一个空对象。这样在你的控制器中你可以做这样的事情:
if(errorObject){throw errorObject}
尽管如此,您仍然需要在每个控制器中包含您想要的所有出口。