gpt4 book ai didi

javascript - 为什么JOI比AJV更受欢迎?

转载 作者:行者123 更新时间:2023-12-04 13:07:53 32 4
gpt4 key购买 nike

我正在决定一个可用于客户端和服务器端验证的验证库。我一直在比较 JOI(+ joi-browser)和 AJV。

据我了解,JOI 和 AJV 可以完成同样的事情。
AJV 甚至可以执行 JOI 无法执行的异步验证。似乎 AJV 也验证了写在 standardized format 中的 JSON 模式。这很方便,但它不像 JOI 那样对开发人员友好。

JOI拥有的明星和贡献者是 AJV 的两倍多.

为什么JOI的人气是AJV的两倍?

最佳答案

AJV 和 Joi 之间的重要区别在于 AJV 是 JSON Schema 验证器,而 Joi 是 JavaScript 验证器。 JSON Schema 是跨平台的,而 Joi 仅适用于 JavaScript。因此,这不是 AJV 和 Joi 之间的选择,而是 JSON Schema 和 Joi 之间的选择。

每种方法都有其权衡取舍,因此您选择哪种方法在很大程度上取决于您的具体情况。

AJV/JSON 模式

JSON Schema 的最大优势在于它是跨平台的。 JSON Schema 验证器实现存在于每种主要的编程语言中。无论您选择哪种语言,您都可以在前端和后端使用相同的 JSON Schema,并获得一致的验证结果。一次编写,随处验证。

缺点是因为它是跨平台的,所以它的功能也有所限制。它故意保持足够简单,以便用任何编程语言实现都不会太困难。因为 JSON Schema 不是一种成熟的编程语言,所以它的功能有限。

如果您在后端使用的不是 JavaScript,或者您的应用程序是一个公共(public) API,可以由任何数量的应用程序以任何数量的语言使用,您可能会选择 AJV/JSON Schema。

乔伊

Joi 最大的优势是它的可用性。它易于使用、易于扩展,并且具有 JavaScript 的全部功能。

不利的一面是,如果您想在前端和后端重用验证逻辑,则后端语言的唯一选择是 node。

如果您将 JavaScript 用于前端和后端,并且不期望您需要支持的非 JavaScript 客户端,您可能会选择 Joi。这是一个相当狭窄的情况,但如果是你的情况,你可能会得到比 AJV/JSON Schema 更多的输出或 Joi。

人气

Github 明星并不是一个很好的人气衡量标准。如果您查看 npm 每日下载量,您会看到一个非常不同的故事(AJV:18.9M,Joi:2.2M)。 JSON Schema 使用更广泛,因为它是跨平台的。 AJV 只是一种语言的一种实现。但是,如果您的开发堆栈适合 Joi 的特定利基,那么它可能是一个不错的选择,或者是比 JSON Schema 更好的选择。

关于javascript - 为什么JOI比AJV更受欢迎?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54228539/

32 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com