前言
在开发中,数据的安全性是十分关键的,无论是前端还是后端,我们都需要考虑如何保障数据的安全性。而数据库作为一个重要的数据存储方式,也需要我们注意数据的安全性。在 MongoDB 中,Mongoose 是一款比较流行的 ODM 库,它可以使数据在存储到数据库的时候,进行数据的校验,以保障数据的安全性。
Mongoose 数据的校验
Mongoose 中支持的数据类型非常丰富,而且它也提供了数据校验机制,通过对定义的 Schema 进行规则的制定,可以达到对数据进行校验的目的。具体的校验规则如下:
1. $lt/$lte/$gt/$gte
这些规则用于校验数字的大小,$lt 表示小于,$lte 表示小于等于,$gt 表示大于,$gte 表示大于等于。
const userSchema = new mongoose.Schema({ age: { type: Number, required: true, min: [18, '年龄必须大于 18 岁'], // 小于 18 岁会报错 max: [120, '年龄不合法'] // 大于 120 岁会报错 } })
2. $in/$nin
这两个规则对应校验一个值是否在 / 不在给定数组内。
const userSchema = new mongoose.Schema({ sex: { type: String, required: true, enum: ['male', 'female'] // sex 只能是 male 或 female } })
3. $regex
这个规则用于校验一个字符串是否符合正则表达式。
const userSchema = new mongoose.Schema({ email: { type: String, required: true, match: /^([\w-\.]+@([\w-]+\.)+[\w-]{2,4})?$/ // email 必须符合邮箱格式 } })
4. $required
这个规则用于校验一个值是否必须。
const userSchema = new mongoose.Schema({ name: { type: String, required: true // name 字段为必须的 } })
5. $default
这个规则用于设置默认值。
const userSchema = new mongoose.Schema({ createTime: { type: Date, default: Date.now // createTime 默认值是当前时间 } })
示例代码
-- -------------------- ---- ------- ----- -------- - ------------------- -------------------------------------------- - ---------------- ----- ------------------- ---- -- ----- -- - ------------------- -------------- --------------------------- ----------- --------- --------------- ---------- - --------------- --------- -- ----- ---------- - --- ----------------- ----- - ----- ------- --------- ---- -- ---- ------ -- ---- - ----- ------- --------- ----- ---- ---- ------- -- ---- -- -- -- ---- ---- ----- -------- -- -- --- ---- -- ---- - ----- ------- --------- ----- ----- -------- --------- -- --- --- ---- - ------ -- ------ - ----- ------- --------- ----- ------ ------------------------------------- -- ----- -------- -- ----------- - ----- ----- -------- -------- -- ---------- -------- - -- ----- ---- - ---------------------- ----------- ----- ---- - --- ------ ----- ------ ---- --- ---- ------- ------ ---------- -- --------------- ----- -- - -- ----- - ---------------- - ---- - ----------------- - --
总结
在开发中,使用 Mongoose 进行数据校验,可以保障数据的安全性,避免出现一些不合格的数据存储到数据库中。因此,在实际开发中,我们可以根据实际需要,对定义的 Schema 进行规则的制定,以使数据能够根据我们的期望进行存储。
来源:JavaScript中文网 ,转载请注明来源 https://www.javascriptcn.com/post/64a10f3348841e9894d54a02