在控制器中验证用户输入并使用猫鼬模式验证器

时间:2020-09-12 16:56:52

标签: node.js mongodb mongoose

我是表达和猫鼬的新手,我试图了解处理数据验证的问题。

我已将代码分为控制器,服务和dao(模型)层。

在php中,我习惯于在控制器层中进行验证。如果验证失败,我可以传回4xx响应。

我很想在我的快速控制器中执行此操作,但是在阅读了我现在不确定的猫鼬验证器之后。这似乎是在猫鼬模式上具有验证器的一般模式。据我所知,这仅涉及更新和创建新记录。此架构验证不包括诸如find()之类的方法。

那么在控制器中验证用户数据也是一种常见的模式吗?如果是这样,在某些情况下(客户端,控制器,数据库),我不会验证输入3次吗?

1 个答案:

答案 0 :(得分:0)

猫鼬验证器可以通过验证那里的数据并在您的Express(假设您使用Express)路线中抛出错误来为您完成大部分“肮脏的工作”。

但是,总的来说,如果您有一个可以当场验证的模式,为什么不使用它。在您的代码库中,您将在Schema中拥有一个可以处理工作的位置,而不是将其埋在控制器中的某个位置。

我希望这对您有所帮助:)