Node.js 正在验证mongoose架构中依赖于同一架构的属性B的属性A的maxlength字段
我正在尝试验证mongoose模式中AccountActivationToken的maxlength字段,它依赖于loginType字段,loginType字段也是同一模式的一部分 我收到一个错误,因为loginType和AccountActivationToken都在同时验证并保存在DB中 我将如何着手做以下工作 架构配置:-Node.js 正在验证mongoose架构中依赖于同一架构的属性B的属性A的maxlength字段,node.js,mongodb,mongoose,mongoose-schema,Node.js,Mongodb,Mongoose,Mongoose Schema,我正在尝试验证mongoose模式中AccountActivationToken的maxlength字段,它依赖于loginType字段,loginType字段也是同一模式的一部分 我收到一个错误,因为loginType和AccountActivationToken都在同时验证并保存在DB中 我将如何着手做以下工作 架构配置:- `const userSchema = new mongoose.Schema( { loginType: { ...trimReqdMaxlt
`const userSchema = new mongoose.Schema(
{
loginType: {
...trimReqdMaxltSchema,
maxlength: 6,
default: "google",
validate(value) {
if (!value.match(/(google|email)/g)) {
throw new Error("INVALID USER LOGIN TYPE PROVIDED. ");
}
},
},
accountActivationToken: {
...uniqueReqdMaxltSchema,
// FOLLOWING FIELD NEEDS TO BE VALIDATED BASED ON loginType
maxlength: () => this.loginType === "google" ? 1300 : 300,
required: false,
},
{ timestamps: true }
);
此.loginType无效,因为300是始终为maxlength拾取的值
控制器代码段:-
const userDetails = {
loginType: "google",
accountActivationToken: token,
...
};
const userCredDoc = new UserCredModel(userDetails);
const savedUser = await userCredDoc.save();