【问题标题】:Cannot mix different versions of joi schemas error when using joi-password-complexity使用 joi-password-complexity 时无法混合不同版本的 joi 模式错误
【发布时间】:2021-03-28 03:25:36
【问题描述】:

我在将 joi-password-complexity 集成到我的 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-password-complexity": "^3.1.0",

【问题讨论】:

    标签: node.js joi


    【解决方案1】:

    这在 v4.0 中已修复:joi-password-complexity。

    v4.0 也支持 Joi v16/17

    【讨论】:

    • 我可以确认它适用于 4.0 的 joi-password-complexity。请注意,在 const passwordLogin = new JoiPasswordComplexity( joiPasswordComplexityOptions ); 中,您现在必须删除 new 关键字。
    猜你喜欢
    • 2020-05-26
    • 2017-08-12
    • 2016-08-12
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-07-02
    • 2022-09-28
    • 2020-08-10
    相关资源
    最近更新 更多