【问题标题】:Validate negative to positive ranged number Joi验证负到正的范围数 Joi
【发布时间】:2022-02-21 22:44:14
【问题描述】:

我正在尝试通过 Joi 验证纬度和经度。

允许的纬度数字范围是-90 to +90
允许的经度数范围为-180 to +180

const schema = Joi.object({
    map_lat: Joi.number()
      .min(-90)
      .max(90)
      .messages({ 'number.base': "Invalid latitude!" }),
    map_lng: Joi.number()
      .min(-180)
      .max(180)
      .messages({ 'number.base': "Invalid longitude!" }),
  })

我遇到了错误。

错误:limit 必须是正整数或引用

我也试过了:

map_lng: Joi.number()
    .positive()
    .negative()
    .min(-90)
    .max(90)

但仍然出现同样的错误。
任何人都可以提供帮助我如何验证 -ve 到 +ve 的范围值?

【问题讨论】:

    标签: javascript node.js joi


    【解决方案1】:

    我在here 文档中找到了greater()less() 用于数字的方法

    const schema = Joi.object({
        map_lat: Joi.number()
          .greater(-90)
          .less(90)
          .messages({ 'number.base': "Invalid latitude!" }),
        map_lng: Joi.number()
          .greater(-180)
          .less(180)
          .messages({ 'number.base': "Invalid longitude!" }),
      })
    

    【讨论】:

    • 我知道这篇文章有点老了,但.greater(-90) 肯定会拒绝正好 -90 的值,.less(90) 会拒绝正好 90。.min(-90).max(90) 会更正确。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2017-07-28
    • 2021-02-05
    • 1970-01-01
    • 1970-01-01
    • 2020-12-11
    • 2018-09-24
    • 2018-02-03
    相关资源
    最近更新 更多