【问题标题】:Joi.array().includes is not a function errorJoi.array().includes 不是函数错误
【发布时间】:2018-04-12 14:03:53
【问题描述】:

我正在使用 Joi 验证来验证我的 API 的有效负载数据。我制作了一个这样的架构:

'use strict';

let mongoose = require('mongoose');

let Schema = mongoose.Schema;

let tokenSchema = new Schema({

    level : {type : Number},
    tokenValues : [{
        level : {type : Number},
        amount : {type : Number}
    }]
});

module.exports = mongoose.model('Tokens',tokenSchema,'tokens');

我已经写了 Joi 验证:

validate: {
            payload: {
                level: Joi.number().required(),
                tokensValues: Joi.array().includes({
                    level : Joi.number().required(),
                    amount : Joi.number().required()
                })
            }
}

上面的代码给出了这样的错误:

TypeError: Joi.array(...).includes is not a function

如果这是错误的做法,请提出其他方法。

【问题讨论】:

    标签: node.js mongoose joi


    【解决方案1】:

    我得到了解决方案:

    validate: {
                payload: {
                    level: Joi.number().required(),
                    tokensValues: Joi.array().items(Joi.object().keys({
                        level : Joi.number().required(),
                        amount : Joi.number().required()
                    }))
                }
    }
    

    【讨论】:

      【解决方案2】:
      Joi.types.Array().includes(Joi.types.Array().valid(["pass array strings here"]))
      

      如果您使用的是express-joi

      【讨论】:

        猜你喜欢
        • 2019-04-13
        • 2019-09-23
        • 1970-01-01
        • 1970-01-01
        • 2017-10-23
        • 2013-01-04
        • 1970-01-01
        • 1970-01-01
        • 2017-05-09
        相关资源
        最近更新 更多