我在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?
答案 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捆绑的那个。我已经做了一段时间了。