2012-12-02 8 views
12

Ich schreibe eine App mit Node.js und Express.js. Die App hat eine (kleine) REST-API und dann ein Web-Frontend. Ich benutze MongoDb.POST Daten JSON Validierung in Express.js

Für die API tendiere ich POST Daten zu einem Endpunkt und dann Verarbeitung oder was auch immer, und dump es in einer Datenbank. Ich habe jedoch ein Datenbankschema, das ich erzwingen möchte. Was sind meine Optionen/Best Practices zum Erzwingen einer bestimmten Struktur auf meinen POST Daten, damit ich weiß, dass bestimmte Felder vorhanden sind und bestimmte Typen.

Es wäre schön, wenn dies auf Middleware-Ebene getan werden könnte, aber es ist nicht notwendig. Was machen Leute normalerweise für Validierung/Schema-Durchsetzung?

Antwort

10

node-validator ist was Sie suchen. Sie können es als eigenständiges Modul wie diese

var check = require('validator').check; 

//Validate 
check('[email protected]').len(6, 64).isEmail();  //Methods are chainable 
check('abc').isInt();        //Throws 'Invalid integer' 

oder Sie können express-validator verwenden, die auf der Oberseite des Knoten-Validator als Middleware integriert ist.

+2

Sowohl Node-Validator und Express-Validator sind gute Optionen ... Aber, Express-Validator in seiner aktuellen Version fehlt die Möglichkeit ** verschachtelte Daten zu bereinigen ... –

+3

Weder JSON-Validierung. – Eric

+0

Oder versuchen Sie http://indicative.adonisjs.com/, Benchmarks zeigen, dass es schneller ist als JOI –

1

Hier ist eine neuere benchmark von verschiedenen JSON-Schema-Validatoren.

Auch für Best Practices möchten Sie vielleicht JSON-schema auschecken, die versucht, eine Standardmethode zu definieren, wie ein JSON-Objekt definiert werden sollte.