4

私はマングーススキーマ検証ルールで「minLength」と「maxLength」を構築したいのですが、現在の解決策は次のとおりです。

var blogSchema = new Schema({
  title: { required: true, type: String }
});

blogSchema.path('title').validate(function(value) {
  if (value.length < 8 || value.length > 32) return next(new Error('length'));
});

ただし、次のようなカスタム スキーマ ルールを追加するだけで、これを単純化する必要があると思います。

var blogSchema = new Schema({
    title: {
        type: String,
        required: true,
        minLength: 8,
        maxLength: 32
    }
});

どうすればこれを行うことができますか?

4

4 に答える 4

11

ライブラリmongoose-validatorをチェックしてください。これは、あなたが説明したのと非常によく似た方法で、マングーススキーマ内で使用するためのノードバリデーターライブラリを統合します。

具体的には、ノードバリデーターの lenまたはminおよびmaxメソッドは、必要なロジックを提供する必要があります。

試す :

var validate = require('mongoose-validator').validate;

var blogSchema = new Schema({
 title: {
    type: String,
    required: true,
    validate: validate('len', 8, 32)
 }
});
于 2012-12-24T20:14:44.687 に答える
6

maxlength と minlength が存在するようになりました。コードは次のように動作するはずです。

    var mongoose = require('mongoose');
    var blogSchema = new mongoose.Schema({
        title: {
             type: String,
             required: true,
             minLength: 8,
             maxLength: 32
        }
    });
于 2016-07-22T04:24:24.667 に答える