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