簡體   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