|
@@ -372,6 +372,43 @@ schema.defineModel({
|
|
|
});
|
|
});
|
|
|
```
|
|
```
|
|
|
|
|
|
|
|
|
|
+### Пользовательские валидаторы
|
|
|
|
|
+
|
|
|
|
|
+Валидатором является функция, в которую передается значение соответствующего
|
|
|
|
|
+поля перед записью в базу. Если во время проверки значения функция возвращает
|
|
|
|
|
+`false`, то выбрасывается исключение об ошибке.
|
|
|
|
|
+
|
|
|
|
|
+Регистрация пользовательского валидатора происходит методом `addValidator`
|
|
|
|
|
+сервиса `PropertyValidatorRegistry`, который находится в экземпляре схемы.
|
|
|
|
|
+
|
|
|
|
|
+**Пример**
|
|
|
|
|
+
|
|
|
|
|
+```js
|
|
|
|
|
+// создание валидатора для запрета
|
|
|
|
|
+// всех символов кроме чисел
|
|
|
|
|
+const numericValidator = (input) => {
|
|
|
|
|
+ return /^[0-9]+$/.test(String(input));
|
|
|
|
|
+}
|
|
|
|
|
+
|
|
|
|
|
+// регистрация нового
|
|
|
|
|
+// валидатора "numeric"
|
|
|
|
|
+schema
|
|
|
|
|
+ .get(PropertyValidatorRegistry)
|
|
|
|
|
+ .addValidator('numeric', numericValidator);
|
|
|
|
|
+
|
|
|
|
|
+// использование валидатора в определении
|
|
|
|
|
+// свойства "code" для новой модели
|
|
|
|
|
+schema.defineModel({
|
|
|
|
|
+ name: 'document',
|
|
|
|
|
+ properties: {
|
|
|
|
|
+ code: {
|
|
|
|
|
+ type: DataType.STRING,
|
|
|
|
|
+ validate: 'numeric',
|
|
|
|
|
+ },
|
|
|
|
|
+ },
|
|
|
|
|
+});
|
|
|
|
|
+```
|
|
|
|
|
+
|
|
|
## Трансформеры
|
|
## Трансформеры
|
|
|
|
|
|
|
|
С помощью трансформеров производится модификация значений определенных
|
|
С помощью трансформеров производится модификация значений определенных
|