繁体   English   中英

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

[英]Validating array items with joi in a Foxx app

我在foxx应用程序以及带有arangodb-2.5.5的arango-shell中使用joi数组项验证时遇到问题。 joi文档建议使用类似以下的内容:

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

我是否缺少某些东西,或者arangodb使用的joi的修改后版本/较小版本已删除了此功能?

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

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM