IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

NodeJS Discussion :

[jayschema] Validation d'objets


Sujet :

NodeJS

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Novembre 2012
    Messages
    14
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2012
    Messages : 14
    Par défaut [jayschema] Validation d'objets
    Bonjour,

    Je souhaite utiliser jayschema avec node.js pour valider des fichiers json. A l’exécution j'ai une erreur, j'ai regardé les différents exemple mais je ne parviens pas à trouver mon erreur

    voici un extrait du code :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
     
     
    	var schemeDatas = require("./datas/calculationSchemes/calculation_schemes.json");
     
    	var jsonSchema = {
    		"title" : "Calculation scheme",
    		"$schema": "http://json-schema.org/draft-04/schema#",
    		"type" : "object",
    		"required" : [ "name" ],
    		"additionalProperties": false,
    		"properties" : {
    			"name" : { "type" : "string"},
    			"description" : { "type" : "string"},
    			"nuclides_file" : { "type" : "string"},
    			"fissile_rules_file" : { "type" : "string" },
    			"structural_rules_file" : { "type" : "string"}
    		}
    	};
     
    	console.log(schemeDatas);
    	var validationResult = js.validate(schemeDatas, jsonSchema);
    	if(validationResult.length > 0){
    		throw ("Validation error :\n" + JSON.stringify(validationResult, null, " "));
    	}

    le contenu du fichier calculation_schemes.json :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
     
    {
    	"ap1" : {
    		"name" : "ap1 name",
    		"description" : "Non implémenté :(",
    		"nuclides_file" : "nucleides.json",
    		"fissile_rules_file" : "fissile_rules.cdtson",
    		"structural_rules_file" : "structural_rules.cdtson"
    	},
    	"ap2" : {
    		"name" : "ap2 name",
    		"nuclides_file" : "nucleides.json",
    		"fissile_rules_file" : "fissile_rules.cdtson",
    		"structural_rules_file" : "structural_rules.cdtson"
    	},
    	"ap3" : {
    		"name" : "ap3 name",
    		"nuclides_file" : "nucleides.json",
    		"fissile_rules_file" : "fissile_rules.cdtson",
    		"structural_rules_file" : "structural_rules.cdtson"
    	}
    }
    et voici la sortie :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
     
     
    Loading calculation scheme datas ...
    { 'ap1':
       { name: 'ap1 name',
         description: 'Non implémenté :(',
         nuclides_file: 'nucleides.json',
         fissile_rules_file: 'fissile_rules.cdtson',
         structural_rules_file: 'structural_rules.cdtson' },
      'ap2':
       { name: 'ap2 name',
         nuclides_file: 'nucleides.json',
         fissile_rules_file: 'fissile_rules.cdtson',
         structural_rules_file: 'structural_rules.cdtson' },
      'ap3':
       { name: 'ap3 name',
         nuclides_file: 'nucleides.json',
         fissile_rules_file: 'fissile_rules.cdtson',
         structural_rules_file: 'structural_rules.cdtson' } }
     
    d:\Affaires\CDT\server.js:187
                    throw ("Validation error :\n" + JSON.stringify(validationResult, null, " "))
                                                  ^
    Validation error :
    [
     {
      "instanceContext": "#",
      "resolutionScope": "anon-schema://b43a66aaeb973880152d038d3bd55d7e06dc2851/#",
      "constraintName": "required",
      "constraintValue": [
       "name"
      ],
      "desc": "missing: name",
      "kind": "ObjectValidationError"
     },
     {
      "instanceContext": "#",
      "resolutionScope": "anon-schema://b43a66aaeb973880152d038d3bd55d7e06dc2851/#",
      "constraintName": "additionalProperties",
      "testedValue": "ap1",
      "desc": "property \"ap1\" not allowed by \"properties\" or by \"patternProperties\" and \"additionalProperties\" is false",
      "kind": "ObjectValidationError"
     },
     {
      "instanceContext": "#",
      "resolutionScope": "anon-schema://b43a66aaeb973880152d038d3bd55d7e06dc2851/#",
      "constraintName": "additionalProperties",
      "testedValue": "ap2",
      "desc": "property \"ap2\" not allowed by \"properties\" or by \"patternProperties\" and \"additionalProperties\" is false",
      "kind": "ObjectValidationError"
     },
     {
      "instanceContext": "#",
      "resolutionScope": "anon-schema://b43a66aaeb973880152d038d3bd55d7e06dc2851/#",
      "constraintName": "additionalProperties",
      "testedValue": "ap3",
      "desc": "property \"ap3\" not allowed by \"properties\" or by \"patternProperties\" and \"additionalProperties\" is false",
      "kind": "ObjectValidationError"
     }
    ]
     
    npm ERR! CDT@0.1.0 start: `node server.js`
    npm ERR! Exit status 8
    npm ERR!
    npm ERR! Failed at the CDT@0.1.0 start script.
    npm ERR! This is most likely a problem with the CDT package,
    npm ERR! not with npm itself.
    npm ERR! Tell the author that this fails on your system:
    npm ERR!     node server.js
    npm ERR! You can get their info via:
    npm ERR!     npm owner ls CDT
    npm ERR! There is likely additional logging output above.
    npm ERR! System Windows_NT 6.1.7601
    npm ERR! command "D:\\Programmes\\nodejs\\\\node.exe" "D:\\Programmes\\nodejs\\node_modules\\npm\\bin\\npm-cli.js" "start"
    npm ERR! cwd d:\Affaires\CDT
    npm ERR! node -v v0.10.32
    npm ERR! npm -v 1.4.28
    npm ERR! code ELIFECYCLE
    npm ERR!
    npm ERR! Additional logging details can be found in:
    npm ERR!     d:\Affaires\CDT\npm-debug.log
    npm ERR! not ok code 0
    merci !

  2. #2
    Membre averti
    Profil pro
    Inscrit en
    Novembre 2012
    Messages
    14
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2012
    Messages : 14
    Par défaut "patternProperties"
    Mea-culpa j'avais mal regardé les exemples, il faut en fait utiliser le champ "patternProperties"

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Réponses: 3
    Dernier message: 14/11/2012, 12h41
  2. [XSD] [XML Schemas] Valider un Objet sur base du schéma
    Par Invité dans le forum Format d'échange (XML, JSON...)
    Réponses: 2
    Dernier message: 27/03/2009, 14h10
  3. Validation, request, Objet non rechargé
    Par parasol007 dans le forum Struts 1
    Réponses: 3
    Dernier message: 22/08/2008, 17h02
  4. [W3C] Validation des objets incorporés (IE)
    Par hedgehog dans le forum Balisage (X)HTML et validation W3C
    Réponses: 2
    Dernier message: 03/06/2008, 18h09
  5. validation formulaire :"objet attendu" pour onSubm
    Par linou dans le forum Général JavaScript
    Réponses: 11
    Dernier message: 15/11/2005, 16h57

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo