[英]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.