Bra*_*avo 5 javascript validation node.js joi
假设我有以下架构:
var schema = {
fieldOne: Joi.string().required(),
fieldTwo: Joi.string().required()
};
Run Code Online (Sandbox Code Playgroud)
是否可以设置验证规则来检查两个字段是否具有不同的值?
For*_*ord 13
是的.你通过使用Joi.ref和Joi.invalid(别名)来做到这一点Joi.disallow.对于您的特定示例,它将是:
var assert = require('assert');
var Joi = require('joi');
var schema = Joi.object().keys({
fieldOne: Joi.string().required(),
fieldTwo: Joi.string().disallow(Joi.ref('fieldOne')).required()
});
Run Code Online (Sandbox Code Playgroud)
测试它会让我们得到我们期望的结果:
assert.ok(Joi.validate(4, schema).error !== null);
assert.ok(Joi.validate({ fieldOne: 'a', fieldTwo: 'a' }, schema).error !== null);
assert.ok(Joi.validate({ fieldOne: 'a', fieldTwo: 'b' }, schema).error === null);
Run Code Online (Sandbox Code Playgroud)
它通过引用fieldOne我们的定义fieldTwo并禁止相同的值来工作.
| 归档时间: |
|
| 查看次数: |
2964 次 |
| 最近记录: |