MongoDB 数据验证
Posted hello word
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了MongoDB 数据验证相关的知识,希望对你有一定的参考价值。
const mongoose = require('mongoose')
mongoose.connect('mongodb://164.red/test', { useUnifiedTopology: true })
.then(res => console.log('数据库连接成功'))
.catch(res => console.log('数据库连接失败'))
// 定义集合并添加验证规则
const postSchema = new mongoose.Schema({
title: {
type: String, //类型
required: [true, '请输入标题'], // 必填
minlength: [5, '标题长度不能小于5'], // 最小长度
maxlength: [10, '标题长度不能大于10'], // 最大长度
true: true, // 去除空格
},
age: {
type: Number,
min: [10, '年龄不能小于10'], // 最小数值
max: [100, '年龄不能大于100'] // 最大数值
},
time: {
type: Date,
default: Date.now // 设置默认值
},
category: {
type: String,
// 枚举当前字段可以拥有的值
enum: {
values: ['html', 'css', 'javascript', 'node.js', 'vue', 'react'],
message: '分类信息不在可选范围'
}
},
author: {
type: String,
validate: {
validator: value => {
// 返回布尔值
// true验证成功
// false验证失败
// value要验证的值
return value && value.length > 4
},
// 返回验证失败的提示信息
message: '传入的值不符合验证规则'
}
}
})
let data = {
title: "2333333",
age: 120,
time: '',
category: 'node.js1',
author: '14'
}
const Post = mongoose.model('Post', postSchema)
// 处理错误信息
Post.create(data)
.then(re => console.log(res))
.catch(error => {
let err = error.errors
if (err) {
for (let key in err) {
console.log(key, err[key].message)
}
}
})
以上是关于MongoDB 数据验证的主要内容,如果未能解决你的问题,请参考以下文章
与 mongodb 后端数据库的基于 Spring Security 的身份验证混淆
Express实战 - 应用案例- realworld-API - 路由设计 - mongoose - 数据验证 - 密码加密 - 登录接口 - 身份认证 - token - 增删改查API(代码片段