node.js - Joi.array().includes 不是函数错误

标签 node.js mongoose joi

我正在使用 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

如果这是错误的做法,请建议其他方法。

最佳答案

我得到了解决方案:

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

关于node.js - Joi.array().includes 不是函数错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38097767/

相关文章:

json - node.js 将包含空格和嵌套字符串的字符串转换为 json

javascript - 提交 AJAX 表单以表达 api - JSON 中位置 0 处出现意外标记 #

node.js - Mongoose/Mongodb 更新返回值及错误处理

node.js - Express JS 和 SocketIO 使用

node.js - Node JS、Highcharts 内存使用率不断攀升

包含 "@"的 MongoDB 密码

node.js - 为什么不能修改 Mongoose 查询返回的数据(例如 : findById)

javascript - JOI - 验证复杂对象

json - Node JS Joi 验证 - 如何返回 JSON 响应而不是字符串?

javascript - Joi 验证数组的顺序