在角度视图中注入猫鼬模型验证

Posted

技术标签:

【中文标题】在角度视图中注入猫鼬模型验证【英文标题】:Inject mongoose model validation in angular view 【发布时间】:2016-05-03 20:06:24 【问题描述】:

我正在使用平均堆栈进行开发。我相信对于当前和默认实现,客户端(角度)需要与服务器(猫鼬)交互,服务器返回显示在角度视图上的错误消息。这意味着它只涵盖了服务器端验证的部分。

是否有任何现有的解决方案或任何配置允许将 mongoose 模型验证注入到 Angular 视图页面,以便它成为除了服务器端验证之外的客户端验证?或者怎么可能实现?

维护两个单独的代码似乎是重复的,一个是 angular(用于客户端验证),一个是 mongoose(用于服务器端验证)。如果可以将猫鼬验证注入角度视图不是很好吗?我相信这是最受欢迎的功能之一,但我没有设法在网上找到与此相关的任何内容。

这不是火箭科学,因为它已在其他平台上实施。以 Microsoft jquery 无障碍验证为例,它连接了服务器端模型验证并将其注入到客户端视图中。

【问题讨论】:

【参考方案1】:

我从未使用过它,但也许 ng-schema 可以帮助你。但请注意,尽管解决了在 Angular 表单中使用猫鼬验证的问题,但您将不得不定义一个模式,这可能更难维护,或者是“不太干净”的解决方案,因为如果有一天您决定更新后端的猫鼬模型,您还必须更新您在 ng-schema 中定义的所有模式。因此,为类似目的管理单独代码的问题仍然存在。

我个人更喜欢使用 Angular 表单中的自定义验证来处理最大长度、必填字段等。表单提交到服务器后,让 mongoose 处理逻辑并将可能的错误返回给客户端。

如果您使用的是 MEAN.JS,您可以在 modules/core/server/controllers/errors.server.controller.js 中编辑错误处理程序配置并使其适应您的需要。

【讨论】:

但这意味着没有客户端验证权???我的倡议是在加载时将猫鼬验证代码注入客户端角度视图而不复制视图。 我猜至少根据ng-schema github页面中的文档确实有客户端验证。

以上是关于在角度视图中注入猫鼬模型验证的主要内容,如果未能解决你的问题,请参考以下文章

通过回调或猫鼬模型验证 PassportJS?

打字稿模型添加猫鼬身份验证

验证多个猫鼬文档并更新

猫鼬 - 如何仅验证特定字段?

.NET Core 3 自定义验证中的依赖注入 [重复]

如何验证猫鼬模式的动态密钥