【问题标题】:How to validate decimal numbers precision using Joi如何使用 Joi 验证十进制数字的精度
【发布时间】:2021-10-29 17:21:10
【问题描述】:

我正在验证我正在处理的 API 之一的请求正文,以便在数据库中插入数据。 DB 的精度为 3。

使用 Joi,我正在验证为

f_num: Joi.number().precision(3).required()

我的理解是,它只允许小数精度高达 3,如果有像 1.345678 这样的数字表示精度应该是 3,则应该抛出错误。

但是在插入数据时,它会在数据库中四舍五入到小数点后 3 位。

有没有办法使用 Joi 检查精确度?我尝试在线搜索但无法找到任何答案。

【问题讨论】:

    标签: node.js validation joi


    【解决方案1】:

    默认情况下,使用精度只会将小数四舍五入到指定的最大值。如果您希望它验证失败,请按照文档将 convert 设置为 false:

    joi.validate(objectToValidate, schema, {convert:false});
    

    【讨论】:

    • 架构还有许多其他元素。是否可以只验证其中之一?
    • @neil 抱歉回复晚了,我认为不可能只验证一个,但你可以创建 2 个模式,然后进行 2 个验证
    猜你喜欢
    • 1970-01-01
    • 2011-01-30
    • 2020-12-11
    • 1970-01-01
    • 2017-01-29
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多