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 PHP

与 mongodb 后端数据库的基于 Spring Security 的身份验证混淆

Express实战 - 应用案例- realworld-API - 路由设计 - mongoose - 数据验证 - 密码加密 - 登录接口 - 身份认证 - token - 增删改查API(代码片段

mongodb关联查询

Linux Centos 7安装MongoDB(简单!详细!)

MongoDB 数据库部署和应用