问题标签 [joi]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
13884 浏览

javascript - Hapijs 和 Joi:验证查询参数是否存在:“禁止”

我的目标是为帖子创建一个索引路由。用户应该能够指定一些查询参数(即标签、类型),但不能指定其他参数。澄清:

这没关系:

这是不行的:

这是 hapi 包配置:

请注意presence: forbidden选项。

这是路由配置:

我的想法是验证应该允许任何子集typetags参数(包括空查询)。但是,在发出任何允许的请求后,我收到以下错误:

这是为什么?当然没有键名value。如何使验证按照我想要的方式进行?

0 投票
1 回答
6102 浏览

regex - 错误:模式必须是正则表达式

我需要接受手机号码作为 Web 服务的输入,但是在使用 Joi 框架进行验证时遇到了以下问题。

乔伊 说:

验证:

我检查了 freeformatter 上的正则表达式它似乎对至少一些输入工作正常。我不明白为什么 joi 会抛出这个错误。

0 投票
2 回答
31795 浏览

javascript - Joi 验证多个条件

我有以下架构:

但我想在c字段定义上添加一个条件,以便在以下情况下需要它:

a == 'avalue' AND b=='bvalue'

我怎样才能做到这一点?

0 投票
0 回答
271 浏览

node.js - 如何建模使用牙痛 hapi 插件创建的两个模型之间的关系?

我正在使用Hapi框架构建节点服务器,并且正在尝试使用toothache插件为 MongoDB 创建 CRUD 端点,但我终生无法弄清楚如何在两个对象之间创建关系.

我将应用程序简化为一个非常简单的场景:

我有两种 CRUD 模式,一种用于作者,一种用于书籍。一本书包含其作者的 ID,但不包含名称。问题是:如何编写返回包含作者姓名的书的路线?

我们在两种模式上都应用了toothache,得到了两个模型:

检索某本书的路线如下所示:

并会返回:

我如何在同一个处理程序中询问 Author 模型,以获得如下答案:

似乎toothache 插件很难对关系数据进行建模,这是一种耻辱,因为在现实世界中,您将无法仅使用嵌入式数组,并且将被迫使用规范化数据。我真的很感激一些帮助。先感谢您!

0 投票
2 回答
984 浏览

angularjs - 如何在 Angular 中执行 Hapi.js/Strongloop 验证?

我计划用 Hapi.js/strongloop 后端和 angularjs 前端创建一个应用程序。

由于这两个 BE 框架都有某种模型验证(Joi for Hapi,以及 Strongloop 自己的验证),我认为在前端使用这些验证模式会很棒。

这可能吗?如果是,如何将 joi/strongloop 验证库迁移到客户端?

  • 修复了什么:我们将使用 AngularJS 作为前端。

  • 我们拥有:Joi 中定义的数据验证 shemas。

  • 我想做的:使用来自 AngularJS 的相同模式(不调用服务器上的实际方法)

目前我们需要调用一个 REST 方法(例如 Create 方法)来使用 joi 验证表单数据(或者写两次相同的验证)。我们想改变这一点,以便前端可以在不联系服务器的情况下验证表单数据。

有没有办法在 AngularJS 中使用 joi NodeJS 库?如果不可能,那么还有其他解决方案吗?

0 投票
1 回答
745 浏览

hapijs - Hapi Joi 多个替代匹配

我希望当“b”是“foo”或“bar”时需要字段“a”,否则是可选的。

我看到单个字段的文档:

我将如何实现上述目标?

0 投票
1 回答
13209 浏览

node.js - Descriptive Hapi/Joi validation error

I've been trying to implement Joi in our node application (joi as standalone, not with hapi) and it seems to validate the schema properly but the error is always the same

I never get the specifics on which key it failed on and description of why it failed.

this is a sample schema I'm using:

And this is the json object I'm sending :

What am i doing wrong here? I even tried to follow something on the blog and while the examples were showing detailed info I never got anything besides

It validates it correctly but when it sees a misfit value it just gives that error and nothing else.

Also, if you look at the 'wID' section it has a 'idValue' object but when I get rid of the idValue and just put a alphanum right on the wID key, it also passes the validation.

ps. When validating keys that are objects. Do I have to validate it with

or can I just do?:

Thank you so much for the help!

0 投票
1 回答
1947 浏览

json - Node.js/Hapijs - 验证 JSON 对象有效负载中的所有键和值,而不用命名键

我的 API 中的一些功能涉及获取 POST 发送的有效负载输入并将其交给另一个应用程序进行处理。负载输入始终作为 JSON 对象发送,并且值必须始终为数字。但是,由于 JSON 对象有数百种不同的变体(因为在其他应用程序中匹配的模型越来越多),我无法为验证配置命名每个键和值我在 Hapijs 中定义的 POST 路由中的选项。

我希望我能做这样的事情,但想象一下必须有更多的hack-ish解决方法:

也许有一些方法可以遍历对象并确保值都是数字的——在 validate 选项中——但这感觉效率很低。

0 投票
4 回答
22032 浏览

javascript - 使用 Joi,要求两个字段之一不为空

如果我有两个字段,我只想验证至少一个字段何时为非空字符串,但当两个字段均为空字符串时失败。

像这样的东西不验证

验证时

or条件仅测试是否存在 key aor b,但确实测试 or 的条件是否ab真。Joi.string()空字符串将失败。

这是一些测试用例的要点来演示

http://requirebin.com/?gist=84c49d8b81025ce68cfb

0 投票
1 回答
308 浏览

arangodb - 带有嵌套对象的 Foxx 模型架构

我为 Foxx.Model 模式找到的所有示例都是平面的——即它们不包括嵌套对象。

我正在尝试添加一个哈希以在这样的模型上保存地理信息:

这在 Foxx 接口数据类型中显示如下:

如何让它显示位置对象的键名“lat”和“lng”?

还是我想错了?