如何确定哪个框架用于节点?

I_D*_*ing 10 node.js

所以我们现在已经使用节点很长一段时间了,我必须说,随着节点社区的不断发展,人们正在开发大量令人敬畏的模块和框架.但是,随着我们正在开展越来越多的项目,我有时会对哪个框架感到困惑.到目前为止,我们使用了以下框架:

  1. Express - 我最喜欢的节点框架之一,当我们开始在node.js中创建应用程序时,这也是第一个.(我认为这也是第一个获得如此受欢迎的应用程序).我们确实遇到了诸如回调地狱之类的问题但是如果路由和代码组织更清晰,我们很高兴使用它.

  2. KoaJS - 来自TJ和团队的另一个,这真是太棒了!当任何浏览器几乎不支持它们时使用ECS 6.(特别是它可以帮助你完全删除回调地狱).我们遇到了一些https符合Koa的问题,并且不得不使用hapi重写整个服务器,以及它依赖于节点上的不稳定版本.

  3. Hapi - 这是我们最近的采用,并没有做太多,但最有趣的部分是joi模块,它帮助我们(轻松)验证请求甚至在它们到达实际服务器和自动文档生成之前.

  4. 合成 - 我没有与它进行过多的互动,但在阅读文档时,我遇到了

像AngularJS一样使用服务和依赖注入,但是在后端!

这真棒,但由于它还处于测试阶段,我不打算很快就会使用它.

因此,在尝试为您的应用程序寻找框架时,是否有一个特定的功能集,一个框架擅长而其他框架不擅长?因为老实说,我们采用大多数框架只是为了尝试它们,除了语法差异(使用ECS 6的Koa除外)以及它们如何处理路由,我发现它们之间没有太大差异.

所以我的问题是,我们应该通过观​​察它的受欢迎程度(这是人们通常做的)来采用任何框架,或者在做同样的事情时我们需要考虑一些检查点吗?

任何建议/帮助表示赞赏.

编辑

我想补充一点,我对这个问题的意图是找出在选择任何node.js框架时要考虑的关键点(而不是仅仅取决于它的受欢迎程度或有多少大牌使用它).对于前端,我们可以很容易地告诉我们,因为我们已经知道或者已经被告知可以帮助开发更容易的关键功能(角度和骨干之间的差异可以是一个例子)但是对于node.js框架来说,这不是任何方式.

我也会请其他人考虑我的编辑.

Zac*_*tes 6

我会尽量保持这个答案尽可能没有意见.请编辑并帮助我改进这一点.这是一个重要的主题,应该得到一个很好的答案.

Express.js

优点

  • Express.js是一个大家伙,相当老,非常受欢迎.
  • 易于使用的视图
  • 非常轻量级

缺点

  • 没有花哨的功能

Koa.js

优点

  • 轻量级
  • Koa可能是Express的继任者
  • 感谢ES6发电机,没有回调地狱
  • 由Express和同一个人建造

缺点

  • 相当新,不是超级精致
  • 使用ECMAScript 6功能,意味着你需要Node.js v0.11(不稳定)

哈皮

优点

  • 许多官方模块,但不是大量的第三方模块
  • 由一家大公司开发,将其用于自己的产品

缺点

  • 由沃尔玛建造
  • 指定路径的语法与Koa或Express不同.
  • 它本身和所有官方模块都有奇怪的名字

合成器

第一个专为单页Web应用程序设计的后端框架.

优点

  • 专为后端单页网站而设计,ala Angular.js
  • API优先
  • 依赖注入,来自Java的人很熟悉
  • 旨在完成大量的后端工作,让您可以在前端工作

缺点

  • 依赖注入,很多人都不喜欢,因为Java是它存在的唯一原因
  • 很新,目前处于测试阶段
  • 不适用于更传统的网站

更多资源