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 !