问题标签 [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 回答
1178 浏览

javascript - 使用 hapijs/joi 验证参数之间的关系

我正在尝试验证查询字符串中相互依赖的可选参数。换句话说,当添加参数A时,还需要参数B。这两个参数都是可选的,所以当它们都没有提供时,验证也应该通过。

应该通过:

应该失败:

有人可以给我一个关于如何解决这个问题的示例模式吗?

0 投票
1 回答
1546 浏览

javascript - 使用 Node 和 hapijs/joi 验证多值 HTTP 标头

我正在尝试验证我的 REST api 中的 Accept 标头,该 api 是在 Hapijs 框架上用 Node.js 编写的。当我从 Firefox 请求我的资源时,它会创建一个带有以下接受标头的请求:

现在我的路线是这样的:

现在我发现 Joi 不会将接受标头拆分为某种数组。我可以使用一些正则表达式,例如:

我想知道除了正则表达式之外是否还有其他方法来验证此类多值标头,尤其是在 api 版本控制将发挥作用时。有人有想法吗?

0 投票
1 回答
3805 浏览

javascript - 如何使用 Joi 清理 hapi 的查询参数?

我想知道是否可以使用 Joi 自动清理查询参数而不是手动执行此操作?

这就是我为路线所做的。

这就是 Joi 模式。

只是想知道 Joi 是否有任何特殊方法可以将查询参数自动清理为非转义字符?

编辑: 请求进来时2016-02-05T20%3A26%3A34.916Z被浏览器转义。我在想如果 Joi 可以自动取消转义,那么我不必手动进行。

0 投票
2 回答
203 浏览

node.js - 如何扩展 Error 类?

这是我的代码:

我想error在错误实例中扩展属性,但 tsc 说joi-utils.ts(21,23): error TS2339: Property 'errors' does not exist on type 'Error'.

的结构errors{fieldname: fieldmsg},是根据我的joi request schema来决定的。

如何解决打字稿编译器的错误?我想我需要声明一个接口并指定属性。

0 投票
1 回答
5016 浏览

javascript - Joi Schema 应该包含一个或另一个字段

我正在研究使用 Joi 进行 api 验证。

我似乎无法确认我的架构是否正确,因为我希望需要电子邮件或手机(但它们都不能为空/不存在) - 以下是否正确?

谢谢

0 投票
2 回答
306 浏览

javascript - hapijs 与玉视图引擎显示错误的最佳方式

我想在验证后在我的翡翠视图中显示我的错误消息。

这是我的服务器代码...

目标是验证 foo 的存在

当验证启动服务器响应时出现 http 400 错误,这对于 api 来说完全没问题并且是预期的。这甚至在调用处理函数之前发生。

使用视图引擎处理验证错误的最佳方法是什么?

我期待类似的东西(这显然是行不通的)

onPreResponse我还看到了一些处理该事件以在全球范围内捕捉它的答案。他们不是在请求处理程序方法中执行此操作的方法吗?或任何最佳实践技巧?

0 投票
1 回答
2849 浏览

validation - 使用 Joi 进行路由验证(参数和查询)

我在尝试着

  1. 验证路径
  2. 根据参数的字符数,我应该能够附加一个查询字符串

例如:- 如果参数字符数小于 4 - 添加查询字符串应返回 404

但是如果参数字符数等于 4 - 并且添加查询字符串应该返回 200

所以基本上只有当参数的字符数等于 4 时才允许查询字符串,否则不允许。

我不确定确切的方法,但我想我可以使用 Join.object().keys()。有人可以指导我吗?

谢谢

0 投票
1 回答
4592 浏览

json - 使用 Joi 验证 JSON 查询字符串作为查询参数

我有一个验证 JSON 的问题,它作为序列化字符串在 GET 请求查询参数中传递。

我需要实现的是将此序列化字符串解析回 JSON 并使用 Joi 对其进行验证。

示例:Give 是 JSON

而这个 JSON 被转换为查询字符串是:

我需要这样的东西来检查:

在这种情况下,Joi 中是否有任何帮助,或者我需要为它编写自定义验证函数。

0 投票
1 回答
4983 浏览

javascript - Joi 验证对象数组,使得只有一个对象具有特定属性

我已经阅读Joi API 文档一段时间了,虽然我怀疑我想做的事情是可能的,但我没有看到解决方案。

鉴于以下情况,我如何验证只有一个thing具有该special属性:

0 投票
3 回答
22967 浏览

javascript - Joi 嵌套模式

我正在尝试在 joi 中创建嵌套模式并且它抛出错误

[错误:对象架构不能是 joi 架构]

我应该如何在 joi 中定义嵌套模式?