这是我的代码:
var userSchema = new mongoose.Schema({
email: String,
password: String,
role: Something
});
我的目标是将角色属性定义为具有特定值('admin'、'member'、'guest'等等),有什么更好的方法来实现这一点?提前致谢!
这是我的代码:
var userSchema = new mongoose.Schema({
email: String,
password: String,
role: Something
});
我的目标是将角色属性定义为具有特定值('admin'、'member'、'guest'等等),有什么更好的方法来实现这一点?提前致谢!
你可以做枚举。
var userSchema = new mongoose.Schema({
// ...
, role: { type: String, enum: ['admin', 'guest'] }
}
var user = new User({
// ...
, role: 'admin'
});
我真的不知道有一种方法可以为角色设置特定的值,但也许您想根据主对象类型创建多个对象类型,每个对象类型都有自己的角色(以及您想要的任何其他内容)区分)。例如...
var userSchema = function userSchema() {};
userSchema.prototype = {
email: String,
password: String,
role: undefined
}
var member = function member() {};
member.prototype = new userSchema();
member.prototype.role = 'member';
var notSupposedToBeUsed = new userSchema();
var billTheMember = new member();
console.log(notSupposedToBeUsed.role); // undefined
console.log(billTheMember.role); // member
另一种可能性是使用带有构造函数的 userSchema,该构造函数允许您轻松选择一个内置值。一个例子...
var userSchema = function userSchema(role) {
this.role = this.role[role];
// Gets the value in userSchema.role based off of the parameter
};
userSchema.prototype = {
email: String,
password: String,
role: { admin: 'admin', member: 'member', guest: 'guest' }
}
var a = new userSchema('admin');
var b = new userSchema('blah');
console.log(a.role); // 'admin'
console.log(b.role); // undefined