2013-10-01 12 views

Odpowiedz

4

Zrobiłem Paperwork, co jest bardzo prostym rozwiązaniem do sprawdzania poprawności JSON. Można robić takie rzeczy jak:

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

Będzie sprawdzania poprawności:

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

Albo będzie cicho odpowiada 400 błąd z informacją o tym, co się stało. Sprawdź dokument, aby uzyskać więcej zaawansowanych zastosowań.

+0

dzięki, wygląda bardzo ładnie! – Kosmetika

9

Cześć Niedawno napisałem express-jsonschema. Główne różnice w porównaniu z innymi walidatorami są następujące:

  1. Do sprawdzania poprawności używany jest standard json schemas. Jeśli posiadasz napisane inne języki po stronie serwera, prawdopodobnie używałeś ich wcześniej: .
  2. Nie kontroluje sposobu, w jaki aplikacja reaguje na nieprawidłowe dane . Daje ci to możliwość podpięcia się i odpowiedzi, ale chcesz. Z mojego doświadczenia wynika, że ​​jest to coś, co jest przyjemne w kontrolowaniu .

express-schema-validator, express-validate i Paperwork są świetne. Każda z nich ma swoją unikalną składnię do deklarowania schematów, a także kontroluje, w jaki sposób aplikacja reaguje na nieprawidłowe dane (np. Kod statusu i strukturę danych).

Powodzenia!

+0

Głosuj za racjonalnym uzasadnieniem projektu rozwiązania: (1) za pomocą [json-schema] (http://json-schema.org), dedykowany język schematu, który pomoże w standaryzacji sposobu projektowania naszego interfejsu API oraz (2) unikania przejęcia kontroli nad aplikacją (rozdzielenie obaw). – Younes

+0

To samo tutaj. Awans na inwersję kontroli: D. IMO to najlepsze rozwiązanie. – Harindaka