Pra*_*ngh 56 enums mongodb node.js express
我正在尝试创建并使用enum
Mongoose中的类型.我检查了一下,但是我没有得到正确的结果.我enum
在我的程序中使用如下:
我的架构是:
var RequirementSchema = new mongoose.Schema({
status: {
type: String,
enum : ['NEW', 'STATUS'],
default: 'NEW'
},
})
Run Code Online (Sandbox Code Playgroud)
但我在这里有点困惑,我怎么能把enum
类似的价值放进去Java NEW("new")
.如何enum
根据它的可枚举值将数据保存到数据库中.我在express node.js中使用它.
小智 11
假设我们有一个Role
由以下定义的枚举
export enum Role {
ADMIN = 'ADMIN',
USER = 'USER'
}
Run Code Online (Sandbox Code Playgroud)
我们可以将它用作如下类型:
{
type: String,
enum: Role,
default: Role.USER,
}
Run Code Online (Sandbox Code Playgroud)
From the docs
Mongoose has several inbuilt validators. Strings have enum as one of the validators. So enum creates a validator and checks if the value is given in an array. E.g:
var userSchema = new mongooseSchema({
userType: {
type: String,
enum : ['user','admin'],
default: 'user'
},
})
Run Code Online (Sandbox Code Playgroud)
小智 6
在架构设计中,您可以使用enum关键字轻松添加枚举值,如下所示:-
catagory: {
type: String,
enum: ['freeToPlay','earlyAccess','action','adventure','casual','indie','massivelyMultiplayer','racing','simulation','RPG','sports','statigy'],
default: 'freeToPlay'
},
Run Code Online (Sandbox Code Playgroud)
如果您想使用 TypeScript,enum
您可以在界面中使用它,IUserSchema
但在 Schema 中您必须使用array
( Object.values(userRole)
)。
export enum userRole {
admin = 'admin',
user = 'user'
}
const UserSchema: Schema = new Schema({
userType: {
type: String,
enum: Object.values(userRole),
default: userRole.user, required: true
},
});
export interface IUserSchema extends Document {
userType: userRole
}
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
55656 次 |
最近记录: |