Ermöglichen string null oder leer joi und express-Validierung

Ich bin mit „joi“: „10.0.6“ und „express-Validierung“: „1.0.1“ in mein Projekt zu validieren JSON-Objekt, das Speichere ich in der DB.
Ein Feld ist ein string, es könnte aber null oder leer.
Wie kann ich zulassen, dass mein string zu übergeben, der Validierung in den Fällen ist es leer oder null?

Ich habe bereits versucht, diese Fälle:

dataId: Joi.string().allow(null).allow('').optional()

und

dataId: Joi.alternatives().try(Joi.string(), Joi.allow(null))

aber Sie beide nicht funktionieren.

InformationsquelleAutor dventi3 | 2017-02-21



4 Replies
  1. 5

    Könnte man auch diese angeben, mit Komma getrennte Liste.

    dataId: Joi.string().allow(null, '')

    Sehen Joi Dokumentation zu ermöglichen(Wert)

  2. 3

    Joi.string().allow('').allow(null) sollte gearbeitet haben. Ich lokal getestet und es funktioniert einwandfrei.

    Zeigen Sie Ihre Testfälle und Fehler?

  3. 2

    Es ist sehr einfach, nehmen Sie an, das Feld ist-Daten, dann könnten Sie verhängen die Validierung als

    data: Joi.string().allow('')

    ermöglicht leeren string zu übergeben,
    für mehrere string-Validierung, könnte es auch geschehen, als

    data: Joi.string().allow('', null)

    so dass sowohl leere als auch als null-Wert für das Datenfeld zu übergeben.

  4. 0

    Wenn Sie nur geben Sie es als

    dataId: Joi.string()

    es optional sein sollte per default.

    EDIT: Könnte man nicht versuchen es auf meine eigene derzeit. Hier eine alternative, wenn die oben nicht funktioniert:

    dataId: Joi.string().min(0).allow('').allow(null)

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.