2017-11-26 2 views
0

Gibt es eine gute, effiziente Möglichkeit, viele req.body Werte zu überprüfen, ob sie nicht undefiniert oder null sind?Überprüfen Sie viele req.body Werte (nodejs API)

Höchstens habe ich etwa 17 Werte zu überprüfen.

+0

Haben Sie einen Grund zu glauben, dass jeder von ihnen die Überprüfung sehr langsam ist? – alfasin

+0

Sie können joi validator verwenden. Was ich für die Körpervalidierung verwende. Hier ist der Link, den Sie sehen können. https://github.com/hapijs/joi/blob/master/README.md –

+0

@alfasin es sieht einfach sehr unlesbar haha ​​ – Rachelle

Antwort

1

Sie können eine Funktion erstellen, die eine Liste von Eigenschaftsnamen und Prüfungen abfragt, um festzustellen, ob sie andere Werte als null oder undefined haben.

// checks to see if all props in the list are available and non-null 
// list can either be an array or a | separated string 
function checkProps(obj, list) { 
    if (typeof list === "string") { 
     list = list.split("|"); 
    } 
    for (prop of list) { 
     let val = obj[prop]; 
     if (val === null || val === undefined) { 
      return false; 
     } 
    } 
    return true; 
} 

Dann könnten Sie es wie folgt verwendet werden:

if (!checkProps(req.body, "email|firstName|lastName|address1|city|state|zip")) { 
    // some properties missing 
} else { 
    // all properties available 
} 
+0

wird dies später überprüfen, arbeitet an einem anderen Projekt für jetzt. – Rachelle

+0

@Rachelle - Hat das deine Frage beantwortet? Wenn dies der Fall ist, können Sie dies der Community anzeigen, indem Sie auf das Häkchen links neben der Antwort klicken und sich einige Reputationspunkte verdienen, um das richtige Verfahren für den Stack-Überlauf zu befolgen. Es ist nicht wirklich angebracht, eine Frage zu stellen und dann einfach anzukündigen, dass Sie die Antworten nicht beachten werden, weil Sie jetzt etwas anderes machen. So funktionieren die Dinge hier nicht. – jfriend00

+0

Entschuldigung, es war nur, dass ich andere Deadlines auf meinem Schreibtisch hämmerte! habe es einfach probiert und funktioniert sehr gut und sauber! danke für Ihre Hilfe. – Rachelle