Паруса min, max, minLength, maxLength для числовых и строковых типов дают userError - PullRequest
0 голосов
/ 03 декабря 2018

Я использую пакет waterline v0.13.5 с expressjs.

  • Я получаю пользовательскую ошибку { userError: The attribute 'str' on the 'action' model contains invalid properties. The property 'minLength' isn't a recognized property. при попытке использовать min, max (с типом числа) и minLength, maxLength(со строковым типом).

  • Этот же тип ошибки также получен со свойством isIn, когда используется как "isIn": [1,2,3].

  • autoPK: true также не работает должным образом.Это заставляет меня определять _id в определении атрибутов модели и ключ primaryKey в параметрах определения расширения.

  • Я также не могу получить функцию валидатора types, запускаемую в целом.Функция isStringType не запускается при входе в mongodb.

Но в документации для паруса v1.0 сказано, что это можно сделать.Эта ошибка возникает, когда я пытаюсь расширить / создать модель с помощью функции Waterline.Collection.extend.Я могу указать вручную минимальное и максимальное значения, но хочу сохранить его динамическим для различных свойств атрибутов.Так что это не жизнеспособный вариант.

waterline.registerModel(Waterline.Collection.extend({
    identity: 'action',
    datastore: 'recAuth',
    schema: true,
    tableName: 'action',
    autoPK: true,
    primaryKey: '_id',
    types: {
        isStringType: function (v) { 
           console.log('String validator triggered');
           return typeof v === 'string';
        }
    },
    attributes: {
        "_id": {
            "type": "string"
        },
        "str": {
            "type": "string",
            "required": true,
            "minLength": 12,
            "isStringType": true
        }
    }
}));
...