2016-06-24 6 views
0

Optional Variable validiert und konditioniert mit Joi:Treat `null` als` undefined` in Joi Validierung

optional = Joi.attempt(optional, Joi.array().optional().default([])); 

Ersetzen undefined mit null ist üblich und bequem für optionale params, es null als undefined und Fall behandeln sollte Zurück zum Standardwert.

Wie kann es erreicht werden?

+0

Also das Problem ist, dass, wenn Sie "null" übergeben, es nicht zurück zu '[]' fallen wird, aber stattdessen wird es null als Wert setzen? –

+0

@JoshBeam Ja. Und ich hoffe wirklich, dass es vielleicht weniger hässliche Wege gibt, Joi zu benutzen als 'Joi.attempt (optional === null? Undefined: optional, ...)'. – estus

Antwort

0

Ich hatte eine ähnliche Erfahrung mit Joi und die Antwort ist, dass Jois Problembereich ist Validierung. Es sollte nicht verantwortlich sein für ändern die Daten, die es empfängt (obwohl sie solche Funktionalität in wie string.replace gebaut haben, die diesen Grundsatz zu brechen).

Wenn Sie null oder Array Produkte erwarten, müssen Sie Joi Funktionalität aufbauen zu bestätigen, dass Sie tatsächlich erhalten haben, ein null oder Array Element, und dann Ihre eigene Logik auf den empfangenen Daten zu wissen, implementieren, dass es sein wird, in das Formular, das Sie definiert haben.