Невозможно смешивать разные версии схем joi, ошибка при использовании сложности пароля joi

У меня возникли проблемы с интеграцией joi-password-complex в мою логику проверки Joi. Я получаю ошибку Cannot mix different versions of joi schemas. Что мне нужно изменить?

schemasShared.js

const Joi = require('@hapi/joi');
const JoiPasswordComplexity = require('joi-password-complexity');

const joiPasswordComplexityOptions = {
    min: 10,
    max: 50,
    lowerCase: 1,
    upperCase: 1,
    numeric: 1,
    symbol: 1,
    requirementCount: 4,
};

const passwordLogin = new JoiPasswordComplexity(
    joiPasswordComplexityOptions
);


module.exports = {
    passwordLogin
};

auth.schemas.js

const Joi = require('@hapi/joi');
const schemasShared = require('../../utils/schemasShared');

const authRequirements = {
    password: schemasShared.passwordLogin,
}

const authSchemas = {
    loginBody: Joi.object({ // The error points to this line, specifically to .object
        password: authRequirements
            .password
            .required(),
    }),
}

Мои версии:

  • "@ hapi / joi": "^ 16.1.7"
  • "сложность пароля-joi": "^ 3.1.0",

person Ben    schedule 10.12.2019    source источник


Ответы (1)


Это исправлено в версии 4.0: сложность пароля-joi.

Также v4.0 поддерживает Joi v16 / 17

person Kamron Batman    schedule 18.01.2020
comment
Я могу подтвердить, что он работает с 4.0 сложности joi-password. Обратите внимание, что в const passwordLogin = new JoiPasswordComplexity( joiPasswordComplexityOptions ); вам теперь нужно удалить ключевое слово new. - person Ben; 20.01.2020