NodeJS 我如何在Joi中添加验证,新旧密码不应相同?[duplicate]

ou6hu8tu  于 2023-02-03  发布在  Node.js
关注(0)|答案(1)|浏览(173)
    • 此问题在此处已有答案**:

Joi validation schema - two fields must not have the same value(1个答案)
2小时前关门了。
我正在使用NodeJS & ExpressJS和Joi构建API进行模式验证。
下面是我对resetUserPinCode控制器的Joi验证,我想检查oldPinCode和newPinCode是否相同:

const resetUserPinCode = {
  body: Joi.object().keys({
    phoneNumber: Joi.string().required(),
    oldPinCode: Joi.alternatives().try(Joi.string(), Joi.number()).required(),
    newPinCode: Joi.alternatives().try(Joi.string(), Joi.number()).required(),
  }),
};

我可以在resetUserPinCode函数中添加oldPinCode和newPinCode不相同的检查,但我想在我的Joi验证模式中添加它。有什么方法可以在我的Joi模式中添加验证吗?

lp0sw83n

lp0sw83n1#

此功能可以通过使用Joi.disallow()实现,如下所示。

const resetUserPinCode = {
  body: Joi.object().keys({
    phoneNumber: Joi.string().required(),
    oldPinCode: Joi.alternatives().try(Joi.string(), Joi.number()).required(),
    newPinCode: Joi.alternatives().try(Joi.string(), Joi.number()).disallow(Joi.ref('oldPinCode')).required(),
  }),
};

相关问题