Mongoose中Validator验证器失效:媒体URL与类型关联验证无效
问题:Mongoose验证器未生效——存在mediaURL时未强制校验mediaType
需要实现的验证逻辑:当文档存在mediaURL时,必须同时设置对应的mediaType。但编写的两种Mongoose验证器均未生效,仍可保存仅包含mediaURL却未设置mediaType的文档。
第一种验证器代码
mediaURL: { type: String, default: '' }, mediaType: { type: String, enum: ['video', 'photo', 'audio', 'none'], validate: { validator: function () { return( (this.mediaURL && this.mediaType) || !this.mediaURL ); }, message: 'There should be a mediaURL in the post to have a media type', } },
第二种验证器代码
mediaType: { type: String, enum: ['video', 'photo', 'audio', 'none'], validate: { validator: function () { if (!this.mediaURL) { // No mediaURL, so mediaType is allowed to be empty return true; } return !!this.mediaType; // Ensure mediaType is present when mediaURL is provided }, message: 'There should be a mediaURL in the post to have a media type', } },
内容的提问来源于stack exchange,提问作者Marko Sami
相关产品推荐
相关产品推荐

