Sails JS通过策略请求验证

时间:2018-08-02 06:40:55

标签: sails.js express-validator

我们正在使用Sails JS构建一个API,该API仅提供JSON响应。我可以将所有请求验证规则存储在策略中吗?这样我的主应用程序逻辑(控制器)看起来就干净了。

优点:应用程序逻辑会很干净。

缺点:最终会创建很多策略。

还有其他更好的方法来保持代码清洁并分别维护验证规则吗?

对于验证,我们可以使用express-validator之类的库。

1 个答案:

答案 0 :(得分:1)

不确定这是否是最好的方法,但是您可以创建一个执行验证的助手。助手可以将每种类型的验证作为其输入,并接受每种类型的数组。因此,在您的控制器中,您将像这样调用助手:

var errorObject = sails.helpers.validate.with({
    alphanumeric: [inputs.userName, inputs.displayName],
    isEmail: [inputs.userEmail],
    ...
    ...
})

然后,您的助手可以获取这些输入中的每一个,并遍历数组进行验证检查。如果发生验证错误,请返回错误对象的内容。如果不是,则返回一个空对象。这样,您就可以在控制器中执行以下操作:

if(errorObject){throw errorObject}

尽管如此,您仍然必须在每个控制器中包括所有想要的出口。