【发布时间】:2016-08-31 03:25:46
【问题描述】:
假设我有一个 Express 模型:
var SchemaDescription = {};
var Model = = new mongoose.Schema(SchemaDescription);
Express 允许在 SchemaDescription 中调整数据验证。保存时它工作得很好,但在更新时,由于猫鼬的性质,它没有被调用,也没有干净的方法来调用它。
我尝试了Model.pre('update', ...);,但在写入数据库之前没有找到访问/更正模型数据的方法:因为复杂的验证逻辑,例如,在检查之前重新格式化一些数据。
一个合乎逻辑的解决方案是将验证代码放入保存/更新控制器的处理程序,但这会导致代码重复。为了将 MVC 模式保持为保存和更新,我想为模型或模式添加一个公共方法,它获取输入数据并验证它们。
我的尝试如下:
Model.prototype.validate = function(input, isUpdate) {...};
或
SchemaDescription.validate = function(...) {...};
不同的组合。
响应总是看起来像"Cannot set property 'validate' of undefined"
- 是否有一种方法可以将自定义公共函数成员放入 Express 模型/模式中以便在控制器中调用?
- 可以使用什么方法来验证保存和更新的数据,而不需要重复代码,或/和将验证逻辑放到控制器中?
【问题讨论】:
标签: node.js validation express