2013-10-01 13 views

Antwort

4

Ich machte Paperwork, die eine sehr einfache Lösung für die JSON-Validierung ist. Sie können Dinge wie:

app.post('/my/route', paperwork({ 
    username: /[a-z0-9]+/, 
    password: String, 
    age: Number, 
    interests: [String], 
    jobs: [{ 
    company: String, 
    role: String 
    }, 
}, function (req, res) { 
    // ... 
}); 

Es validieren:

{ 
    username: 'brucewayne', 
    password: 'iambatman', 
    age: 36, 
    interests: ['Climbing', 'CQC', 'Cosplay'], 
    jobs: [{ 
    company: 'Wayne Inc.', 
    role: 'CEO' 
    }] 
} 

Oder wird antwortet leise einen 400-Fehler mit Informationen über das, was falsch ist. Überprüfen Sie das Dokument, um erweiterte Verwendungen durchzuführen.

+0

danke, es sieht sehr schön aus! – Kosmetika

9

Hallo ich express-jsonschema kürzlich schrieb. Die Hauptunterschiede mit den anderen Validatoren da draußen sind:

  1. Sie verwenden den Standard json schemas für die Validierung. Wenn Sie andere serverseitige Sprachen geschrieben haben, haben Sie diese wahrscheinlich zuvor bereits verwendet.
  2. Es steuert nicht, wie Ihre Anwendung auf ungültige Daten reagiert. Es gibt Ihnen die Möglichkeit, sich einzuloggen und zu antworten, aber Sie wollen. Nach meiner Erfahrung ist dies etwas, das zu Steuerung nett ist.

express-schema-validator, express-validate und Paperwork sind alle großartig. Sie haben jeweils ihre eigene eindeutige Syntax zum Deklarieren von Schemas und steuern auch, wie Ihre App auf ungültige Daten reagiert (d. H. Statuscode und Datenstruktur).

Viel Glück!

+0

Up-Vote für die rationale hinter dem Design der Lösung: (1) mit [Json-Schema] (http://json-schema.org), eine dedizierte Schema-Sprache, die bei der Standardisierung hilft, wie wir unsere API entwerfen und (2) vermeiden, die Kontrolle aus der Anwendung zu übernehmen (Trennung von Bedenken). – Younes

+0

Das gleiche hier. Upvote für Inversion der Kontrolle: D. IMO das ist die beste Lösung. – Harindaka