用于json对象的NodeJSvalidation库

我需要在我的NodeJS应用程序中validation一些对象。 我已经使用了一个很棒的库express-validator ,它完美的工作,但是现在我需要validation不同的对象,不仅仅是请求,而且就expression式validationvalidator ,它使用validationvalidator库,而不是支持stringtypes以外的types。

我发现不同的变体,如Jsonschema , Ajv

他们提供了很好的function,但我需要能够设置错误消息,而不是只是捕获exception或从返回对象parsing它。 像那样

  var schema = { "id": "/SimplePerson", "type": "object", "properties": { "name": {"type": "string", "error": "A name should be provided"}, "address": {"$ref": "/SimpleAddress"}, "votes": {"type": "integer", "minimum": 1} } }; 

所以我可以为每个属性设置一个错误消息。

有没有现成的解决scheme来实现这个function?

可能的解决scheme

我find了一个伟大的图书馆JSEN它提供了必要的function。

一个解决scheme是使用Joi库: https : //github.com/hapijs/joi

这个库很好的维护,使用,并提供了很多的灵活性和可能的​​行动。

例如:

 const Joi = require('joi'); const schema = Joi.object().keys({ name: Joi.string()..error(new Error('A name should be provided')), address: Joi.ref('$SimpleAddress'), votes: Joi.number().min(1), }); // Return result. const result = Joi.validate(yourObject, schema);