Convalidare Mongoose Mixed schema type

In mongodb Ho il seguente schema:

// Schema
var Product = new Schema({
  data: {
    type: mongoose.Schema.Types.Mixed
  },
  created: {
    type: Date,
    'default' : Date.now
  }
});

 

Il campo 'data' viene utilizzato per memorizzare una stringa json variabile. Tuttavia prima di inserire i dati vorrei fare alcuni controlli per convalidare i dati in base alle mie esigenze, quali ad es lunghezza, provo a farlo così:

// Controllo Validazione
Product.path('data').validate(function (value) {
  console.log(value);
  return value.length > 0;
}, 'Data non puo essere vuoto');

Questo però mi ritorna il seguente errore:

TypeError: Cannot read property 'length' of undefined

dove sbaglio? Come posso realizzare questa convalida? E qual'è il miglior modo per farlo?

In Corso 3
MongoDB 24-03-2020 1 Risposta 1607 Visite +1

Risposte ( 1 approvate )

  1. Bruno Verzinesi
    0
    24-03-2020 12:26:17
    Rispondi

    Stai trattando "value" come un oggetto, senza prima aver verificato che esso lo sia realmente, prova ad effettuare un controllo prima di utilizzarlo, potresti scrivere così:

    if(typeof value !== "undefined" && value !== null)
    {
      return value.length > 0
    }

Rispondi

Per poter rispondere a questa domanda, devi essere registrato e loggato sul sito, dopodichè compila il box sottostante cercando di essere il più chiaro ed esauriente possibile, la tua risposta potrebbe essere la soluzione che l'utente cerca ed essere contrassegnata come migliore, consentendoti così di ottenere punti ed autorevolezza.

Pietro Fresoli

Pietro Fresoli

Autore di questa domanda

 Domanda Precedente

 Elenco Domande 

Domanda Successiva