JOI сообщает об ошибке AssertionError: недопустимое содержимое схемы

Вот ошибка после того, как я добавил .unique в order schema с помощью platform_order_id:

AssertionError: Invalid schema content: (platform_order_id)

Вот function validateOrder:

function validateOrder(order) {
    const schema = {
    customer_name: Joi.string()
        .required(),
    amount_rmb: Joi.number()
        .precision(2)
        .required(), 
    amount_crypto: Joi.number()
        .precision(2)
        .required(), 
    platform_order_id: Joi.number()
        .required()
        .unique,  //<== causing error
    x_rate: Joi.number()
        .required()
    };
    return Joi.validate(order, schema);
};

order.platform_order_id это 149345. Пробовал Number('149345') и ошибка та же. Без .unique проверка работает нормально. Что мне здесь не хватает?


person user938363    schedule 07.11.2018    source источник


Ответы (1)


.unique () предназначен для типа Array , не для типа Number.

и системный уровень uniqueness, я думаю, должен быть проверен после валидации joi.

person gump    schedule 07.11.2018
comment
Я думал, что уникальность - это то, что JOI может проверить. - person user938363; 07.11.2018
comment
joi может проверять уникальность заданных данных. но я понимаю, что op просто хочет проверить уникальность на системном уровне. joi не может подтвердить, что platform_order_id уникален в системе. - person gump; 08.11.2018