个人资料Schema设计和参数校验
2020-03-26 本文已影响0人
HuFan_JS
Schema设计
const userSchema = new Schema({
__v: { type: Number, select: false },
name: { type: String, required: true },
password: { type: String, required: true, select: false },
avatar_url: { type: String },
gender: {
type: String,
enum: ['male', 'female'],
required: true,
default: 'male',
select: false
},
introduction: { type: String, select: false },
locations: { type: [{ type: String }], select: false },
business: { type: String, select: false },
careers: {
type: [
{
commpany: { type: String },
job: { type: String }
}
],
select: false
},
education: {
type: [
{
school: { type: String },
major: { type: String },
diploma: { type: Number, enum: [1, 2, 3, 4, 5] },
entrance_year: { type: Number },
graduation_year: { type: Number }
}
],
select: false
}
})
参数校验
ctx.verifyParams({
name: { type: 'string', required: false },
password: { type: 'string', required: false },
avatar_url: { type: 'string', required: false },
gender: { type: 'string', required: false },
introduction: { type: 'string', required: false },
locations: { type: 'array', itemType: 'string', required: false },
business: { type: 'string', required: false },
careers: { type: 'array', itemType: 'object', required: false },
education: { type: 'array', itemType: 'object', required: false }
})