首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >为什么JOI比AJV更受欢迎?

为什么JOI比AJV更受欢迎?
EN

Stack Overflow用户
提问于 2019-01-17 03:21:27
回答 1查看 17.5K关注 0票数 42

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

据我所知,JOI和AJV可以完成同样的事情。AJV甚至可以执行异步验证,就像JOI不能执行的那样。看起来AJV也验证了在标准化格式中编写的JSON模式(这很方便),但它不像JOI那样对开发人员友好。

乔依的明星和贡献者是阿新的两倍多。

为什么JOI是AJV的两倍受欢迎?

EN

回答 1

Stack Overflow用户

发布于 2019-01-17 06:16:38

AJV和Joi之间的重要区别是,AJV是一个JSON验证器,而Joi是一个JavaScript验证器。JSON是跨平台的,而Joi只在JavaScript中工作。因此,这不是AJV和Joi之间的选择,而是JSON和Joi之间的选择。

每种方法都有它的取舍,所以你选择哪一种很大程度上取决于你的具体情况。

AJV/JSON模式

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

缺点是因为它是跨平台的,所以它所能做的也是有限的。它有意识地保持足够简单,这样在任何编程语言中实现起来都不会太困难。因为JSON不是一种成熟的编程语言,所以它所能做的是有限的。

如果后端使用的是JavaScript以外的东西,或者您的应用程序是公共API,那么您可以选择AJV/JSON,它可以被任意多种语言的应用程序使用。

Joi

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

缺点是如果您想在前端和后端重用您的验证逻辑,那么您在后端的唯一选择就是节点。

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

普及

Github明星并不是一个很受欢迎的指标。如果你看看npm的每日下载,你会看到一个完全不同的故事(AJV: 1890万,Joi: 220万)。JSON模式由于跨平台而被广泛使用。AJV只是一种语言的一种实现。但是,如果您的开发堆栈适合Joi的特定领域,那么它可以是一个比JSON更好的选择或更好的选择。

票数 104
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/54228539

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档