【发布时间】:2020-05-08 22:17:56
【问题描述】:
我有这段代码,我想在角色为“公司”时将名称属性转换为唯一模型属性,但我找不到访问角色值以检查条件的方法。
import mongoose, { Schema } from 'mongoose';
import uniqueValidator from 'mongoose-unique-validator';
import { IUser } from '../interfaces/user';
const validRoles = {
values: ['HUMAN', 'COMPANY', 'RRHH'],
message: '{VALUE} is not a valid role'
}
const UserSchema: Schema = new Schema({
role: { type: String, required: [true, 'Role is required'], enum: validRoles },
name: {
type: String,
required: [true, 'Name is required'],
unique: this.role === 'COMPANY' ? true : false,
},
email: { type: String, required: [true, 'Email is required'], unique: true, uniqueCaseInsensitive: true },
password: { type: String, required: [true, 'Password is required'] }
});
UserSchema.plugin( uniqueValidator, {message: '{PATH} must be unique'});
export default mongoose.model<IUser>('User', UserSchema);
有什么想法吗?
谢谢!
【问题讨论】:
标签: node.js typescript mongoose