2013-10-01 11 views

risposta

4

Ho realizzato Paperwork, che è una soluzione molto semplice per la convalida JSON. È possibile fare cose come:

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

Sarà convalidare:

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

O sarà in silenzio risponde un errore 400 con le informazioni su ciò che è sbagliato. Controlla il documento per fare usi più avanzati.

+0

grazie, sembra molto bello! – Kosmetika

9

Ciao ho recentemente scritto express-jsonschema. Le principali differenze con gli altri validatori disponibili sono:

  1. Si utilizza lo standard json schemas per la convalida. Se hai scritto altre lingue sul lato server probabilmente le hai usate prima .
  2. Non controlla il modo in cui l'applicazione risponde ai dati non validi . Ti dà l'opportunità di collegarti e rispondere comunque a che vuoi. Nella mia esperienza questo è qualcosa che è bello per il controllo di .

express-schema-validator, express-validate, e Paperwork sono tutti ottimi. Ognuno di essi ha una propria sintassi univoca per la dichiarazione degli schemi e controlla anche il modo in cui la tua app risponde ai dati non validi (ad esempio il codice di stato e la struttura dei dati).

Buona fortuna!

+0

Up-vote per il razionale dietro il progetto della soluzione: (1) utilizzando [json-schema] (http://json-schema.org), un linguaggio di schema dedicato che aiuterà a standardizzare come progettiamo la nostra API, e per (2) evitare di dirottare il controllo dall'applicazione (separazione delle preoccupazioni). – Younes

+0

Lo stesso qui. Upvote per inversione di controllo: D. IMO questa è la soluzione migliore. – Harindaka