我在使用同一架构上的虚拟方法从 Mongoose 架构中获取枚举值时遇到困难。
我尝试在架构中访问的属性定义如下:
, roles: {
type: [{
type: String
, enum: ['user', 'admin']
}]
, default: ['user']
}
以下是我用来获取枚举值的虚拟方法:
// Returns an array of all possible role enum values
UserSchema.virtual('possibleRoles').get(function() {
return this.schema.path('roles').caster.enumValues;
});
这是可行的,但是我在网上找到的其他示例以不同的方式进行了处理。一个例子在这里:Access the list of valid values for an Enum field in a Mongoose.js Schema
我访问属性枚举的方法是否肮脏或不正确?有没有更简洁的方法可以写这个?
最佳答案
这是干净且简单的方法。
var possibleRoles = ['user', 'admin'];
var UserSchema = new Schema({
roles: {
type: [{type: String, enum: possibleRoles}],
default: ['user']
}
});
UserSchema.virtual('possibleRoles').get(function () {
return possibleRoles;
});
关于node.js - 如何使用虚拟方法从 Mongoose 模式获取枚举值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37283471/