1

私はポストメソッドを持つエクスプレスアプリを持っています(ポストはjsonタイプです):

server.js(簡易版):

   app.post('/listener/v1/event/', function(req, res) {
            .
            .
            var event = req.body;
            var validator = require("./validator");
            validator.validate(event);
    }

validator.js には、json の検証が含まれています。

var jsonschemavalidate = require("json-schema");
var basicSchema = require('fs').readFileSync('./schema.json', 'utf8');

exports.validate = function (event) {
    console.log(jsonschemavalidate.validate(event, basicSchema).errors);
}

schema.json:

{ 
    name : "test",
    type : 'object', 
    properties : { 
        event_id : { type : 'string' }, 
        timestamp : { type : 'string' } 
    }
}

入力にはcurlを使用します:

curl -i -X POST -H 'Content-Type: application/json' -d '{"event_id": "NedaleGassss", "timestamp": "a2009321"}' http://localhost:3000/listener/v1/event/

出力は次のとおりです。

[ { property: '',
    message: 'Invalid schema/property definition {\n    name : "test",\n    type : "object",\n    additionalProperties : false,\n    properties :\n    {\n        event_id            : { type : "string" },\n        timestamp        \t: { type : "string" }\n    }\n}' } ]
4

1 に答える 1