探索 Node.js 框架
简介
结论
TLDR;
简介
我花了相当多的时间使用 javascript 和 Node.js 编写代码,主要使用 express 和 AWS serverless。
今天,我正在阅读更高级的 Node.js 概念,并复习基础知识以保持技能精进,这时我偶然看到了 Node.js 推荐几个框架的部分。其中一些我曾经使用过,也听说过大部分,但从未真正尝试过。为了跟上不断发展的市场趋势,我想花几个小时至少从初学者的角度来探索一下不同的框架以及它们的优缺点。
Adonis.js-链接
Adonis 恰好是我从未接触过的框架之一,所以我带着许多疑问和疑虑开始安装。由于我熟悉代码,安装过程似乎比较简单,但默认的应用程序样板代码有点复杂,可能需要相当长的学习时间才能完全理解。不过,代码似乎封装得相当好,结构也很好。但学习曲线的复杂性似乎不值得我进一步探索(至少在初期阶段是这样,以后我会深入研究。)
总体而言,我给出的第一印象是 4/10;
Egg.js -链接
Egg.js 类似于 Adonis,对我来说很新。不过,它的安装步骤并不复杂,我很快就能生成一个应用。或许是因为我对 MVC 模式的熟悉,它的代码结构更加直观,我很快就能创建一个示例 API。
我绝对会再次尝试这个框架。
总体而言,我给出的第一印象是 6/10;
Express.js-链接
Express.js 我已经用了好几年了,所以大部分评论我都会保留。不过由于 Express 本身并没有自带项目生成器,所以我用了一个推荐的包来做。与上面两个框架不同,不带 Nodemon 的 Express 不会监听代码变化,我觉得这点值得一提。
总体而言,根据之前的印象,我给它 6/10 分;
Fastify链接
Fastify 是我尝试过的最有趣的框架之一。我喜欢极简优雅的代码,Fastify 所需的简化代码非常棒。我没有遇到任何 Fastify 生成器,所以我猜我们可以使用 Yeoman 推荐的或业界认可的编码结构来创建一个灵活的项目。我肯定会用这个框架来快速进行 PoC 和想法验证。
总体而言,我给出的第一印象是 9/10;
Gatsby.js-链接
我曾经有机会使用过 Gatsby,尽管我最初的意图是评判这些框架,以便创建直观简洁的 API。Gatsby.js 让我惊喜不已。它让我能够创建一个完整的服务器端应用程序,并且拥有易于使用的编码结构。如果我要构建文档、落地页或任何信息内容,它绝对是一个不错的选择。未来我肯定会继续使用它。
总体而言,我给出的第一印象是 8/10;
Hapi.js-链接
不知为何,Hapi 的安装说明对我来说有点混乱。我还是设法运行了一个基本的服务器。但是,构建一个简单的 REST API 端点所需的基本代码脚手架实在太多了。鉴于 Hapi 的用途,我建议将其用于中大型项目。因为它的创建初衷就是为了逻辑复用。
总体而言,我给第一印象打 5/10 分;
Koa -链接
Koa 是一个基于 Express 构建的框架,因此熟悉 Express 的用户会觉得 Koa 用起来很顺手。它的另一个优点是代码更简洁、更小巧。我非常轻松地完成了安装和服务器搭建,接下来我会深入研究 Koa,看看为什么它比 Express 更好。
总体而言,我给出的第一印象是 6/10;
Loopback.io-链接
我几年前就听说过 Loopback,但从未真正尝试过。安装花了不少时间(可能是我的网速问题,谁知道呢),但这个应用程序生成了不少样板代码。几分钟浏览代码后,我发现它与 MVC 模式非常相似。代码结构本身还不错,但在我看来,对于初学者来说,这似乎有点难以理解。我注意到的最大优点是它支持 TypeScript,这非常好。不久的将来,我可能会考虑使用 Loopback 来开发 TypeScript 解决方案。
总体而言,我给出的第一印象是 7/10;
Meteor.js -链接
MeteorJs 已经流行了很长一段时间了,我曾经在 MeteorJs 发布的时候尝试过将它和 Angular 结合使用,但之后就没再用过这个框架了。我注意到的最大优点是它与很多支持移动端的前端框架兼容良好。但是,由于我主要关注的是后端,所以我并没有深入研究最初的代码。至于代码的构建、生成和安装,虽然安装过程中遇到了一点小问题,但总体来说体验还不错。
总体而言,我给出的印象是 6/10;
Micro.js链接
Micro 是我发现的最适合我总体目标的框架。它名副其实,极其轻量级和精简,这让我措手不及。代码非常简单,无需搭建任何脚手架即可获得基本端点。加上函数声明和简单的响应字符串,代码只需三行即可提供可用的 API。
每当我需要快速便捷的 API 时,我一定会将 Micro.js 作为我的首选。但是,对于任何生产级工作,我都会对这个库持保留态度。简单固然好,但我仍然不知道它可能存在的缺点。我一定会进一步研究 Micro.js 在企业应用程序中的可行性。
总体而言,我给出的第一印象是 10/10;
Nest.js链接
Nest.js 是一个非常紧凑的基于 Typescript 的 Node.js 框架,而且构建得相当出色。我喜欢使用 Typescript,它生成的代码实际上与 Angular 非常相似。因此,任何熟悉 Angular 的人都能轻松上手。对于后端初学者,但对 Typescript 有所了解的人来说,这绝对是一个不错的选择。我以后可能会进一步探索。
总体而言,我给出的第一印象是 7/10;
Next.js链接
Next.js 是一个我听说过但还没真正用过的 React 框架。安装几分钟后,我发现它的代码结构和直观性非常好用。它简洁优雅,我刚开始用的时候简直惊呆了。如果想要更快的开发周期,我肯定会考虑 Next.js。
总体而言,我给出的第一印象是 9/10;
结论
我确实测试了其他一些框架,但没有花足够的时间将它们纳入本文。不过,我会添加一篇关于这些框架的后续文章,并对本文中挑选的几个框架进行更深入的探讨。
只是想让所有读者知道,这些猜测纯粹是基于我的个人观点,如果您认为我不正确,请告诉我,我很乐意学习更多并提高自己。
如果有人对合作文章感兴趣请联系我:)
TLDR;
一位工程师花了几个小时尝试 Node.js 框架,并找到了一些他喜欢的有趣的框架。
在社交媒体上关注我。
干杯 :)