Mongoose 数据校验
生活随笔
收集整理的這篇文章主要介紹了
Mongoose 数据校验
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
一、Mongoose 校驗參數
required : 表示這個數據必須傳入
max: 用于 Number 類型數據,最大值
min: 用于 Number 類型數據,最小值
enum:枚舉類型,要求數據必須滿足枚舉值 enum: [‘0’, ‘1’, ‘2’]
match:增加的數據必須符合 match(正則)的規則
maxlength:最大長度
minlength:最小長度
二、Mongoose 自定義的驗證器
在缺省情況下創建的索引均不是唯一索引。下面的示例將創建唯一索引,如:
var UserSchema = new mongoose.Schema({ name:{ type:String, required: true, },age: { type: Number, // 是否必須的校驗器 required: true, // 數字類型的最大值校驗器max: 120, // 數字類型的最小值校驗器 min: 0 },status: { type: String, // 設置字符串的可選值 enum: ['0', '1', '2'] },phone:{ type:Number, match: /^\d{11}$/ },desc: { type: String, // 自定義的驗證器,如果通過驗證返回 true,沒有通過則返回 false validate: function(desc) { return desc.length >= 10; } } });user.js:
var mongoose = require('./db.js');var UserSchema = mongoose.Schema({name: {type: String,required: true,get(params) {return "a001" + params}},sn: {type: String,index: true,maxlength: 20,minlength: 10,// match: /^sn(.*)/i,validate: function(sn) {return sn.length >= 10}},age: {type: Number,min: 0,max: 150},status: {type: Number,default: 1, // 默認數據enum: [0,1,2]} }) // 靜態方法 UserSchema.statics.findBySn = function(sn,cb) {// 通過find方法獲取sn的數據 通過this關鍵字來獲取當前的Modelthis.find({"sn": sn}, function(err,data) {cb(err, data)}) }// 實例方法 UserSchema.methods.print = function() {console.log('我是一個實例方法')console.log(this) }var UserModel = mongoose.model('User', UserSchema, 'users') module.exports = UserModelapp.js:
var UserModel = require('./model/user.js')var user = new UserModel({name: '李四322',sn: 'sn888',age: 10,status: 1 }) // UserModel.findBySn('8888', function(err, data) { // if(err) { // console.log(err) // return; // } // console.log(data) // })// user.print(); // 自定義的實例方法// console.log(user.name,user.age)user.save(function(err) {if(err) {console.log(err)return;}// 新增數據成功后,查詢數據UserModel.find({}, function(err,data) {if(err) {console.log(err)return;}console.log(data)}) })總結
以上是生活随笔為你收集整理的Mongoose 数据校验的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: java商城_基于Java,jfinal
- 下一篇: Koa框架——coderhub实战