【问题标题】:Validating array items with joi in a Foxx app在 Foxx 应用程序中使用 joi 验证数组项
【发布时间】:2015-09-02 14:41:57
【问题描述】:

我在 foxx 应用程序中使用 joi 数组项验证以及在 arangodb-2.5.5 中使用 arango-shell 时遇到问题。 joi-documentation 建议使用类似:

var Joi = require('joi');
Joi.array().items({'name': Joi.string().required()});

用于验证类似于以下内容的数据集:

[{'name': 'Peter'}, {'name': 'Edeltraut'}, ...]

但是,在 Foxx 应用程序中使用它会导致应用程序停止工作。将 sn-p 从上面粘贴到 arango-shell 会产生以下输出:

JavaScript exception: TypeError: undefined is not a function
!Joi.array().items({'name': Joi.string().required()});
!            ^
stacktrace: TypeError: undefined is not a function
    at <shell command>:1:13

是我遗漏了什么,还是 arangodb 使用了修改/更小的 joi 版本,去掉了这个功能?

【问题讨论】:

    标签: arangodb joi foxx


    【解决方案1】:

    ArangoDB 2.5 使用旧版本的 joi。有问题的方法在 joi 6.0 中重命名为 items,之前称为 includes

    您可以在 https://github.com/hapijs/joi/tree/v4.9.0 找到 joi 4.9.0(ArangoDB 2.5 附带的版本)的文档

    ArangoDB 2.6 将附带 joi 6.4.3,这是目前的最新版本。

    如果您想知道 ArangoDB 附带的 NPM 依赖项的版本,您还可以通过导入其 package.json 文件来查找版本号,如下所示:

    require('joi/package.json').version
    

    【讨论】:

      【解决方案2】:

      您不必等待 ArangoDB 2.6 使用最新版本的 joi。如果您在 Foxx 应用程序的 APP 文件夹中npm install joi --save,它将被使用而不是与 ArangoDB 捆绑的那个。我已经这样做了一段时间了。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2019-09-03
        • 2021-02-05
        • 2016-10-11
        • 2017-07-28
        • 2019-04-02
        • 1970-01-01
        相关资源
        最近更新 更多