Outils pour utilisateurs

Outils du site


web:javascript:mean_stack:mongoose

Différences

Ci-dessous, les différences entre deux révisions de la page.

Lien vers cette vue comparative

Les deux révisions précédentesRévision précédente
Prochaine révision
Révision précédente
web:javascript:mean_stack:mongoose [2014/12/29 04:12] – [Validation] sgariepyweb:javascript:mean_stack:mongoose [2022/02/02 00:42] (Version actuelle) – modification externe 127.0.0.1
Ligne 35: Ligne 35:
   isActive:  Boolean   isActive:  Boolean
 }); });
 +</code>
 +
 +==== Valeurs par défaut ====
 +
 +<code javascript>
 +  created: {
 +    type: Date,
 +    default: Date.now
 +  }
 </code> </code>
  
Ligne 442: Ligne 451:
 ^ Schema Type  ^ Built-in Validators  ^^^ ^ Schema Type  ^ Built-in Validators  ^^^
 | String  | required  | enum  | match  | | String  | required  | enum  | match  |
-| Number  | required  | min  | max+| Number  | required  | min  | max  |
 | Date  | required  | | | | Date  | required  | | |
 | Buffer  | required | | | | Buffer  | required | | |
Ligne 449: Ligne 458:
 | ObjectId  | required | | | | ObjectId  | required | | |
 | Array   | required | | | | Array   | required | | |
 +
 +===== Validation required =====
 +
 +
 +Exemple de schema :
 +
 +<code javascript>
 +var customerSchema = new Schema({
 +  name: { type: String, required: true }, address: String,
 +  city: String,
 +  state: String,
 +  country: String,
 +  zipCode: Number,
 +  createdOn: Date,
 +  isActive: Boolean
 +});
 +</code>
 +
 +
 +Une fois le schema définit, on peut préciser une validation avec ''required()''. La signature est:
 +  required(required, [message])
 +
 +
 +<code javascript>
 +customerSchema.path('city').required(true, ‘Oops! Supply a city.’);
 +</code>
 +
 +
 +===== Validation match =====
 +
 +<code javascript>
 +var reMatch = /[a-zA-Z]/;
 +var customerSchema = new Schema({
 +  name: { type: String,
 +          required: true,
 +          match: reMatch },
 +         // etc...
 +});
 +</code>
 +
 +
 +===== Validation enum =====
 +
 +<code javascript>
 +var impediments = ['none', 'minor', 'blocking', 'severe'];
 +
 +var standupSchema = new Schema({
 +  // abbreviated...
 +  impediment: {
 +    type: String,
 +    required: true,
 +    enum: impediments
 +  }
 +});
 +</code>
 +
 +
 +
 +===== Validation min et max =====
 +
 +
 +<code javascript>
 +var customerSchema = new Schema({
 +  name: String,
 +  discount: { type: Number, min: 5 }
 +});
 +
 +var customerSchema = new Schema({
 +  name: String,
 +  discount: { type: Number, max: 60 }
 +});
 +
 +var customerSchema = new Schema({
 +  name: String,
 +  discount: { type: Number, min: 5, max: 60 }
 +});
 +</code>
 +
 +===== Validation personnalisée =====
 +
 +Une validation personnalisée peut être spécifiée avec ''validate'' L'important, c'est que la fonction du validateur retourne ''true'' ou ''false'', indiquant que la validation est correcte ou non.
 +
 +<code javascript>
 +var sizeValidator = [
 +  function (val) {
 +    return (val.length > 0 && val.length <= 50)
 +  },
 +  // Custom error text...
 +  'String must be between 1 and 50 characters long'
 +];
 +
 +var personSchema = new Schema({
 +  firstName: { type: String, required: true, validate: sizeValidator },
 +  lastName: { type: String, required: true, validate: sizeValidator },
 +  status: { type: String, required: true, default: 'Alive' }
 +});
 +
 +var Person = new mongoose.model('Person', personSchema);
 +
 +var newPerson = new Person( { firstName: 'John', lastName: 'Doe' } );
 +
 +newPerson.save(function (err) {
 +  if (err) return handleError(err);
 +  // saved the person document!
 +});
 +</code>
 +
 +
  
  
  
  
web/javascript/mean_stack/mongoose.1419822753.txt.gz · Dernière modification : 2022/02/02 00:43 (modification externe)