node.js - 2021 年使用 Nodejs + TypeScript 的 REST API
问题描述
我必须使用 Node.JS 和 TypeScript 构建一个 rest API。我正准备使用 Express,但看起来 Koa、Fastify 和 Hapi 可以提供更好的最新体验。
那么,2021 年用 node 和 TS 构建 rest api 的现代选择是什么?
谢谢!
解决方案
在我看来,Express.js 是 2021 年使用 TypeScript 构建 REST API 的安全选择。
看看流行的 Web 框架的数字和其他一些指标,您可能会知道什么是成熟的以及您会找到社区支持的内容。您会发现以下内容:
框架 | 打字稿支持 | GitHub 星星 | GitHub“被”使用 | SO标记的问题 | npm 每周下载量 |
---|---|---|---|---|---|
Express.js | @types/express |
51.6k (47.2k) | 8.8M (5.5M) | 72.7k (59.9k) | 15.2M (11M) |
Koa.js | @types/koa |
30.5k (28.4k) | 152k (106k) | (< 1k) | 733k (391k) |
Hapi.js | @types/hapi__hapi |
13k (12k) | 15.3k (5.9k) | (1.2k) | 333k (376k) |
Fastify | 是的 | 17k (13.4k) | 10.8k (5.3k) | (< 1k) | 155k (78k) |
环回 3/4 | 是的 | 13.3k/3.3k | 16.1k/3.4k | 1.2k | 34.8k |
2021 年 1 月 17 日的数据 (括号内为 2020 年 2 月 4 日的统计数据)
阅读有关特定功能比较的更多信息:
使用的资源:
- https://www.githubcompare.com/expressjs/express+strongloop/loopback+hapijs/hapi+koajs/koa+fastify/fastify
- https://stars.przemeknowak.com/
- https://github.com/DefinitelyTyped/DefinitelyTyped/
编辑:添加了 2021 年的数据
推荐阅读
- c - 获取 uint8_t 指针的值
- firebase - 根据查询条件限制对firestore的访问
- python - Python 从未绑定的 TypedDict 获取密钥
- c# - 富文本框中的链接不可点击
- c++ - 为什么在循环 boost::hana::tuple 时会得到意外的索引
- swift - 我想用故事板和 swift 重新创建这个设计
- r - 跨多行数据的时间间隔
- r - 当两个文件中的行数不同时,根据另一个文件的匹配值在变量中添加行号索引
- c# - 是否可以在没有 HttpWebRequest 的情况下使用 C# 定义的方法将数据发送到需要登录的特定 Web 服务?
- java - 找到输出的正确方法是?