问题标签 [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 投票
2 回答
14111 浏览

javascript - 允许在 Joi 中使用可选参数而不指定它们

我对使用 Joi 验证 hapi 中的请求有效负载相当陌生。我的问题如下。我有这个定义的路线:

电子邮件和密码是我必需的属性。但是,我想允许其他属性而不必全部指定。例如:

有没有办法用 Joi 做到这一点?

0 投票
2 回答
80 浏览

arangodb - 修改 Header 服务器:ArangoDB

这似乎很容易,但我找不到这样做的方法。是否可以更改响应中发送的标头

服务器:ArangoDB

通过别的东西(为了不那么冗长和更安全)?

另外,我需要在文档中存储一个大字符串(很长的 url + 很多信息),但是 joi.string 的最大长度是多少?

谢谢,

0 投票
2 回答
1245 浏览

javascript - 如何在没有循环依赖的模型之间正确共享 Hapi Joi 验证模式

我正在使用 HAPI 和 Joi 创建一个 API 来验证输入,并且在不同模块之间共享我的验证模式时遇到了麻烦。我正在使用一个看起来像这样的面向组件的架构

在每个模块中,moduleXRoute创建一个路由来关联来自的处理程序moduleXController和来自的验证器moduleXValidate

当我使用 Joi 时,我正在对输入数据执行一些测试,并且问题出在哪里,我moduleA保留了一个列表moduleB并且我moduleB保留了对 的引用moduleA,因此这在验证器中暗示:

这就是为什么,我认为暴露moduleAValidate和其他模块可以使用是一个好主意。moduleBValidatemoduleASchemamoduleBSchema

问题是它会产生循环依赖问题,因为在上述情况下,我会:

因此,处理问题的好方法是什么?

我发现最简单的方法是将所有模式集中在一个文件中,这可能是所有验证器都需要的,但我觉得它与组件架构相矛盾。

0 投票
2 回答
19476 浏览

node.js - Joi 验证 - 与 POST 中的日期进行比较

我目前在 HapiJS / NodeJS 中使用 Joi 来验证数据。特别是一个 POST 有两个 ISO 日期(开始日期和结束日期),它们被传递到路线并经过验证以确保它们是 ISO 日期。

我知道我可以通过这两个日期并在控制器中进行一些验证,以确保开始日期早于结束日期(即开始日期不能是二月,结束日期是一月)。

我的问题是,是否有办法让 Joi 确定这一点并出错?如果需要更多信息,请告诉我。

谢谢!吨

0 投票
1 回答
7738 浏览

javascript - Joi 验证模式 - 两个字段不能具有相同的值

假设我有以下架构:

是否可以设置一个验证规则来检查两个字段是否具有不同的值?

0 投票
1 回答
8532 浏览

javascript - 使用嵌套对象进行 Hapi/Joi 验证

我对我的一条路线进行了以下验证:

我正在努力做到这一点,containsAny或者containsAll必须至少包含一个字符串。如果containsAny为空,containsAll则应至少有一项。如果containsAll为空,containsAny则至少应包含一项。

Joi.when但是当涉及到对象数组时,它似乎并没有真正起作用。

0 投票
1 回答
1697 浏览

node.js - Loading Joi Schemas From Files

I would like to create a way to read multiple files, each of which contain the definition of one Joi schema, and then load/push them into an object or array that I can call from my Node app.

Normally, this is done inline in code:

How should I define each Joi schema in one file, and how do I load them such that they are instantiated and usable in the main app?

0 投票
2 回答
2952 浏览

node.js - 生成 Joi 验证 Sequelize 模型

expressjs我已经使用并且Sequelize是我使用的 ORM开发了一个 API 。我想将快速验证集成到我的 API 以验证请求正文和参数。该express-validation框架使用 Joi 验证规则。但由于我已经在我的Sequalize模型中定义了验证规则,我不喜欢使用 Joi 重新定义验证规则以进行请求正文验证。

我只是想知道是否有任何方法或库可以根据 Sequelize 模型中定义的验证生成 Joi 验证规则。否则,处理此问题的最佳方法是什么?

0 投票
1 回答
984 浏览

javascript - JOI模式验证条件下如何访问数组外的键

我有一个问题。

我有上面的对象,我必须对 Type 进行验证。但是Type取决于ShippingSourceTypeShippingDestinationType在参数中。

如果ShippingSourceType是系统那么Type应该是Export。如果ShippingDestinationType是 System 那么 Type 应该是Import

我已验证类型如下:

但它没有用。你能建议如何解决这个问题吗?

0 投票
1 回答
7357 浏览

node.js - 在 Mongoose 和 Joi 之间只维护一个模式的最佳方法

我正在使用 Hapi 开发 Web 服务,Mongoose 作为 ODM,Joi 作为验证器。我真的很喜欢 Joi 的验证以及它与 HAPI 连接的方式(我需要 Joi 的描述函数来大摇大摆地显示一些描述),但我不想维护两种模式,一种用于 Joi,一种用于猫鼬;我想使用 Joi 定义我的模式,然后只能导出 Mongoose 所需的基本模式。例如:

mySchema.js

myValidator.js

myModel.js

myHapiRoute.js

我想避免维护mySchema.js文件完全从 Joi 的模式生成它的麻烦。

关于如何做到这一点或任何不同的方法的任何建议?