Mongoose - 为什么我的验证方法失败了?

时间:2016-02-16 04:05:05

标签: node.js mongodb mongoose

这是我的猫鼬模式。我有验证器功能。当我打印长度然后它显示未定义。我希望phno字段为10位数。帮助!!

'use strict';

var mongoose = require('mongoose');

function validator (v) {
    console.log("phno len:"+v.length)
  return v.length == 10;
};

var UserSchema = new mongoose.Schema({
    fname:{type:String, required:true},
    lname:{type:String, required:true},
    username:{type:String, required:true},
    password:{type:String, required:true},
    phno:{type:Number,required:true,validate:[validator,'Phno must be 10 digits']},
    email:{type:String, required:true},
    dob:{type:Date,required:true},
    address:{type:String, required:true}
});

var User = mongoose.model('User', UserSchema);
module.exports = User;

1 个答案:

答案 0 :(得分:0)

phno的类型为Numberlength中没有NumberNumbersminmax个验证工具。

也许您可以将phno类型更改为String,它可以满足您检查数字长度的要求。

或尝试将数字转换为字符串,如下所示。

function validator (v) {
    console.log("phno len:" + v.toString().length)
    return v.toString().length == 10;
};