Validierungsbibliothek für Node.js [closed]

Lesezeit: 6 Minuten

Benutzer-Avatar
ajsie

Gibt es ein gutes Validierungsframework für node.js, das eine Variable validiert für:

  • wenn es sich um eine Art Zeichenfolge, Datum, Zahl usw. handelt
  • maximale und minimale Länge
  • E-Mail, Telefon
  • etc…

  • Da die Frage geschlossen ist, kommentiere ich meine Antwort, joi.js von Hapi ist ein ziemlich umfangreiches Javascript-Modell-Framework. Es hat alles, was Sie wollen und noch viel mehr. Großartige Dokumentation und großartige Benutzer, die es in Produktionen verwenden

    – Srivathsa Harish Venkataramana

    22. Januar 2015 um 10:56 Uhr

  • Ich ermutige Sie, dies zu überprüfen kontextfähig.js Framework, das schemabasierte Validierungen und Fehlerbehandlung bereitstellt. Es ist eine Art ActiveRecord für Node.js.

    – xpermint

    21. November 2016 um 14:26 Uhr


Benutzer-Avatar
Bagz

habe ich neulich entdeckt Node-Validator durch Chris.

Beispiel

var check = require('validator').check,
    sanitize = require('validator').sanitize

//Validate
check('[email protected]').len(6, 64).isEmail();       //Methods are chainable
check('abc').isInt();                               //Throws 'Invalid integer'
check('abc', 'Please enter a number').isInt();      //Throws 'Please enter a number'
check('abcdefghijklmnopzrtsuvqxyz').is(/^[a-z]+$/);

//Sanitize / Filter
var int = sanitize('0123').toInt();                  //123
var bool = sanitize('true').toBoolean();             //true
var str = sanitize(' \s\t\r hello \n').trim();      //'hello'
var str = sanitize('aaaaaaaaab').ltrim('a');        //'b'
var str = sanitize(large_input_str).xss();
var str = sanitize('&lt;a&gt;').entityDecode();     //'<a>'

  • Ja, aber der Node-Validator konzentriert sich auf die String-Validierung. Überprüfen Sie daher den Typ einer Variablen wie “Ist sie vom Typ Date?” ist nicht wofür diese Bibliothek gedacht ist.

    – sebpiq

    22. Januar 2013 um 15:29 Uhr


  • Es ist eine Schande. Ich mag ihre Idee, wie die Validierung funktionieren sollte, wirklich, ich denke, sie ist praktisch, aber ich hätte gerne eine Möglichkeit, strengere Validierungen zu haben.

    – Gaston Sánchez

    14. Dezember 2013 um 21:30 Uhr

  • Ich veröffentliche gerade dieses neue Validierungs-Framework: github.com/wilkerlucio/composed-validations

    – Wilker Lucio

    21. April 2014 um 6:12 Uhr

  • Ich kann nicht finden, wie ich den Validator für optionale Parameter verwenden kann? Stellt der Node-Validator dies bereit.

    – JehandadK

    4. Mai 2014 um 7:47 Uhr

  • Ich habe sie alle überprüft und fand sie überhaupt nicht aussagekräftig, ich habe meine eigenen geschrieben npmjs.org/package/indicative

    – Aman Virk

    5. Oktober 2014 um 10:31 Uhr


Benutzer-Avatar
Paris

Ich wollte Ruby on Rails und Validierungen im Cakephp-Stil. Ich wusste, dass ich es immer wieder verwenden würde, also habe ich dieses schnelle npm-Modul erstellt: https://npmjs.org/package/iz

Es liest sich semantisch wie Jasmin und kann client- oder serverseitig verwendet werden. Dies bedeutet, dass es Unterstützung für commonjs und amd sowie Validierungsregeln bietet, die über JSON übergeben werden.

Es ist ziemlich gut komponentengetestet, hat keine Produktionsabhängigkeiten und der Umfang ist nur auf die Validierung beschränkt. Wir scheinen jetzt eine kleine Community am Laufen zu haben. Ideen, Feedback und Pull Requests sind alle willkommen.

Aktuelle Bibliotheksfunktionen:

iz.alphaNumeric(*);               // Is number or string(contains only numbers or strings)
iz.between(number, start, end);   // Number is start or greater but less than or equal to end, all params numeric
iz.blank(*);                      // Empty string, undefined or null
iz.boolean(*);                    // true, false, 0, 1
iz.cc(*);                         // Luhn checksum approved value
iz.date(*);                       // Is a data obj or is a string that is easily converted to a date
iz.decimal(*);                    // Contains 1 decimal point and potentially can have a - at the beginning
iz.email(*);                      // Seems like a valid email address
iz.extension(ob1, ob2);           // If obj2's methods are all found in obj1
iz.fileExtension(arr, value);     // Checks if the extension of value is in arr. An obj can be provide, but must have indexOf defined.
iz.fileExtensionAudio(value);     // Check against mp3, ogg, wav, aac
iz.fileExtensionImage(value);     // Check against png, jpg, jpeg, gif, bmp, svg, gif
iz.inArray(arr, value);           // If * is in the array
iz.int(*, bool (optional));       // Is an int. If the 2nd variable is true (false by default) a decimal is allowed
iz.ip(str);                       // str resembles an IPV4 or IPV6 address
iz.minLen(val, min);              // val (str or arr) is greater than min
iz.maxLen(val, max);              // val (str or arr) is shorter than max
iz.multiple(num, mult);           // Number is multiple of another number
iz.number(*);                     // Is either an int or decimal
iz.ofType(obj, typeName);         // If it is a named object, and the name matches the string
iz.phone(str, canHaveExtension?); // Is an american phone number. Any punctuations are allowed.
iz.postal(*);                     // Is a postal code or zip code
iz.ssn(*);                        // Is a social security number

Node-Validator ist eine Bibliothek mit String-Validierungs-, Filter- und Bereinigungsmethoden.

Wenn Sie also Zahlen und Arrays besser unterstützen möchten, können Sie es versuchen Chai.js. Hier sind einige Beispiele:

var expect = require('chai').expect;
try {
    expect([1, 2, 3]).to.have.length.below(4);
    expect(5).to.be.within(3,6);
    expect('test').to.have.length(4);
} catch (e) {
    // should not occur
}

  • Nichts für ungut, aber das to.have, to.be erscheint mir nutzlos. Schreibe ich ein Gedicht oder ein Programm? if (the("string").I.want.to.validate.is.shorter.than(123) === false) { console.log('The string is too long'); }

    – Savas Vedova

    20. September 2014 um 8:28 Uhr


  • Die extra langen und nutzlosen Methodenaufrufe sind da, weil Chai zum Schreiben von Unit-Tests entwickelt wurde.

    – TinyTimZamboni

    27. Mai 2015 um 18:57 Uhr

  • @SavasVedova, du schreibst beides.

    – AJB

    8. September 2016 um 5:48 Uhr

Ich nehme an, dass dies die Art von Sache ist, die die Schema Modul soll es tun. Beachten Sie, dass es als „in Entwicklung“ gekennzeichnet ist (gekennzeichnet als v0.1a). Ich habe es selbst nicht ausprobiert, aber es sieht ziemlich gut aus anhand der Beispiele in der README.

Nicht auf Variablenebene, sondern auf Funktionsargumentebene:

http://github.com/torvalamo/argtype.js

Das Datum muss derzeit als Typ „Objekt“ übergeben werden. Es ist definitiv etwas, das ich vergessen habe und auf die Todo-Liste setzen werde. 😉

Eine spezifische maximale und minimale Länge wird nicht unterstützt und wird wahrscheinlich nicht implementiert (aber wer weiß). E-Mail, Telefon und alles, was mit Regex überprüft werden kann. Sehen Sie sich das Beispiel auf der Github-Seite an, das ein (einfaches) Regex-Beispiel enthält.

Benutzer-Avatar
Eduardo Nunes

Ich empfehle Gültigkeit Es fehlt an Dokumentation, aber es ist ziemlich einfach zu verstehen, wenn man sich das ansieht Beispiele.

Valida-Funktionen sind:

  • Desinfektion
  • Synchrone und asynchrone Validierung
  • Gruppen
  • Erweiterbar

Benutzer-Avatar
Wilker Lucio

Ich beende das Schreiben einer Bibliothek zu Javascript-Validierungen (sowohl Knoten als auch Browser), ich werde die Dokumente in den nächsten Tagen schreiben, aber der Code ist fast fertig: https://github.com/wilkerlucio/composed-validations

Bitte lassen Sie mich wissen, wenn Sie irgendwelche Fragen / Vorschläge dazu haben 🙂

1093390cookie-checkValidierungsbibliothek für Node.js [closed]

This website is using cookies to improve the user-friendliness. You agree by using the website further.

Privacy policy