Mongoose 数据校验
生活随笔
收集整理的這篇文章主要介紹了
Mongoose 数据校验
小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.
一、Mongoose 校驗(yàn)參數(shù)
required : 表示這個(gè)數(shù)據(jù)必須傳入
max: 用于 Number 類(lèi)型數(shù)據(jù),最大值
min: 用于 Number 類(lèi)型數(shù)據(jù),最小值
enum:枚舉類(lèi)型,要求數(shù)據(jù)必須滿足枚舉值 enum: [‘0’, ‘1’, ‘2’]
match:增加的數(shù)據(jù)必須符合 match(正則)的規(guī)則
maxlength:最大長(zhǎng)度
minlength:最小長(zhǎng)度
二、Mongoose 自定義的驗(yàn)證器
在缺省情況下創(chuàng)建的索引均不是唯一索引。下面的示例將創(chuàng)建唯一索引,如:
var UserSchema = new mongoose.Schema({ name:{ type:String, required: true, },age: { type: Number, // 是否必須的校驗(yàn)器 required: true, // 數(shù)字類(lèi)型的最大值校驗(yàn)器max: 120, // 數(shù)字類(lèi)型的最小值校驗(yàn)器 min: 0 },status: { type: String, // 設(shè)置字符串的可選值 enum: ['0', '1', '2'] },phone:{ type:Number, match: /^\d{11}$/ },desc: { type: String, // 自定義的驗(yàn)證器,如果通過(guò)驗(yàn)證返回 true,沒(méi)有通過(guò)則返回 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, // 默認(rèn)數(shù)據(jù)enum: [0,1,2]} }) // 靜態(tài)方法 UserSchema.statics.findBySn = function(sn,cb) {// 通過(guò)find方法獲取sn的數(shù)據(jù) 通過(guò)this關(guān)鍵字來(lái)獲取當(dāng)前的Modelthis.find({"sn": sn}, function(err,data) {cb(err, data)}) }// 實(shí)例方法 UserSchema.methods.print = function() {console.log('我是一個(gè)實(shí)例方法')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(); // 自定義的實(shí)例方法// console.log(user.name,user.age)user.save(function(err) {if(err) {console.log(err)return;}// 新增數(shù)據(jù)成功后,查詢數(shù)據(jù)UserModel.find({}, function(err,data) {if(err) {console.log(err)return;}console.log(data)}) })總結(jié)
以上是生活随笔為你收集整理的Mongoose 数据校验的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: java商城_基于Java,jfinal
- 下一篇: Koa框架——coderhub实战