在Foxx应用程序中使用joi验证数组项

时间:2015-06-17 11:30:43

标签: arangodb joi foxx

我在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应用程序中使用它会导致应用程序停止工作。将上面的片段粘贴到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

是否有我遗漏的内容,或者是使用已删除此功能的修改后的较小版本的joi的arangodb?

2 个答案:

答案 0 :(得分:4)

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

答案 1 :(得分:0)

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