05 | 用户模型model设计
2020-10-10 本文已影响0人
cemcoe
这里是在简书仿简书的第五篇,早睡早起身体好
来看一下简书的用户,找一找用户身上要有什么字段。
可以看到用户界面要用到的数据有:用户名,用户头像,用户简介,用户文章等。
可以设计成下面的 model:
const userSchema = new Schema({
__v: { type: Number, select: false },
name: { type: String, required: true },
// select: false 不要将password返回给客户端
password: { type: String, required: true, select: false },
// name 和 password 安全性较高,不能轻易被修改
gender: { type: String, enum: ['male', 'female'], default: 'male', required: true },
// 用户简介
bio: { type: String, default: '该用户没有给自己编写简介' },
// 用户头像
avatar: { type: String, default: '/uploads/default_avatar.png' },
})
name 和 password 是注册登录的最小单元,不可缺少,其余部分可以按需添加。
下面对一些语法做一些简单的介绍,首先是 type,mongoDB 中的数据类型,需要指出的是在 mongoDB 中的数据类型和 JavaScript 中的数据类型并不是完全一致的。
type 字段限制数据的格式,select 字段限制是否展示,required 字段代表是否必须提供,default 字段用于设置默认值。enum 字段是字典,只能从中选值。