在客户端代码中重用 Mongoose 模式
Posted
技术标签:
【中文标题】在客户端代码中重用 Mongoose 模式【英文标题】:Reuse Mongoose schema in client code 【发布时间】:2016-04-02 13:49:48 【问题描述】:我正在开发一个 MEANJS 应用程序并定义了一个 Mongoose 模式。现在我想在客户端代码中重用它来验证带有Mongoose in the browser 的表单。
基本应用程序是使用yo meanjs
生成的,我有一个包含模型的文件,如下所示:
'use strict';
var mongoose = require('mongoose');
var Schema = mongoose.Schema;
var schemaDefinition = ... ;
var schemaOptions = ... ;
var EventSchema = new Schema(schemaDefinition, schemaOptions);
mongoose.model('Event', EventSchema);
在客户端中包含该架构以重用它进行表单验证的最佳方式是什么?
【问题讨论】:
答案写在文档里。通过将其包含在脚本标签中,或使用诸如 browserify 或 webpack 之类的工具,在全局范围内。 @RobertMoskal 文档说明了猫鼬的功能,但没有说明它的架构。 这就是您在客户端上获得的全部内容,即架构。 【参考方案1】:您可以指定validators directly to your schema。我假设 Mongoose 原型无法在客户端呈现,而且它需要大量工作才能将其映射到 Angular 的验证方式模型。 此外,还缺乏仅在客户端进行的安全验证。
使用 Angular 应用程序中的 AJAX 调用序列化模型并将其解析到 Express 侦听器非常容易。 由于您的架构具有验证器,因此不会将格式错误的数据解析到您的集合中。
【讨论】:
在客户端进行验证更加用户友好且速度更快,这就是为什么我也希望在客户端进行验证。根本不会跳过服务器上的验证。以上是关于在客户端代码中重用 Mongoose 模式的主要内容,如果未能解决你的问题,请参考以下文章