Node.js常有开发框架

2018-02-05 11:35:49
admin
1347
最后编辑:admin 于 2018-02-05 18:54:38

JavaScript 这门语言的设计虽然被很多人诟病,但是因为其占据了浏览器而且容易上手所以广泛流行。后来随着 Node.js 的出现,npm 包管理带来的强大生态更是如虎添翼(截止到 2017 年 3 月 npm 共有 43 万个包)。但是这也造成了 JS 社区变态的快速迭代,大家都直呼赶不上,框架太多,选择太多,眼花缭乱。

下图是 2016 年 Node.js 开发框架的发展势头排名(基于 Github 上 2016 年增加的 star 数)。

关于上图的更多细节可查看 2016 JavaScript Rising Stars

Tip: 可以通过网站 npms.io 快速了解一个 npm 包的质量。更多如何确定一个包的质量,可以参考《如何挑选高质量的 Node.js 模块?》

下面结合上图简单介绍一下各个框架。

  1. Meteor 很奇怪前面提到的 2016 JavaScript Rising Stars 居然没有把 Meteor 列入。Meteor 目前在 Github 上已经是 star 最多的 web app 开发框架了。注意不是仅限于 JS 范围哦。它已经超越了 Ruby 的 Rails 和 PHP 的 Laravel。(参考 Github web app frameworks Rank)。当然星星多并不能说明全部问题。Meteor 最近动作不多,可能是他们团队在忙着开发基于 GraphQL 的 Apollo 框架的原因。(建议大家关注一下 Apollo,感觉会对前后端交互带来很大的革新)。 Meteor 是一个有点 ‘异类’ 的全栈框架。首先它前后端通信使用 WebSocket 而不是 HTTP,所以实时性很好,但它不是一个 REST 框架,虽然可以通过简单的改造,提供 RESTful API;第二 Meteor 绑定了 MongoDB,让喜爱关系型数据库的同学爱不起来。不过现在 Meteor 也可以使用 Apollo 和关系型数据库交互了,比 REST 架构还方便。但是 Apollo 目前还处于开发阶段。

  2. Express 和 Koa 这两个是 Node.js 最基础的后端框架。因为太基础,所以构建一个 app 仍需要写很多脚手架代码,于是在它们基础之上出现了很多其他框架来减少编写这类代码。Express 应该是装机量最多的,而 Koa 更新一些, 使用的技术更新颖,例如 promises 和 async function,不再有回调函数嵌套的问题了。

  3. Feathers.JS Feathers.JS 构建与 Express4.0 基础之上,Express 的那些中间件都能在 Feathers 里直接使用。Feathers 另外特点是兼容 WebSocket 的实时性和 HTTP 的 REST。不过注意用户鉴权默认使用 JWT,而不是传统的 session。我觉得 JWT 更适合大一点的项目,例如有移动端需要调用 API。

  4. Nodal 和 PostgreSQL 绑定。对这个框架不熟悉,感觉是为 stdlib.com 这个云服务商定制的,比较封闭的一个框架。

  5. KeystoneJS KeystoneJS 是一个 CMS 框架,有点像 PHP 的Drupal,功能全面,适合做后台管理,内容管理。自带的用户管理功能很方便。

  6. LoopBack LoopBack 是由 StrongLoop 公司基于 Express 开发的开源框架。前年被 IBM 收购了。这是一个大而全的企业级框架,适合有多种终端,还有与其他后端服务集成的场景。这篇文章解释了 LoopBack 为什么火不起来? 。主要观点是因为目前大系统都还是 Java 框架的天下,Node.js 更多是应用在前端和中间层。

  7. Sails 和 Trails 从名字看应该都是向 Ruby 的 Rails 学习的 MVC 框架,之前没有用过 Rails,所以对他们没有太多了解。估计适合从 Ruby on Rails 转过来的同学。

  8. hapi 和 restify 从名字可以看出是构建 RESTful 服务的框架,适合后端是微服务的架构。二者个人更倾向于 hapi(来自沃尔玛团队),这里有一篇中文的安利 hapi 的文章。个人推荐这个框架来开发面向服务的 API。

  9. Egg 阿里巴巴开源 (据说不是一个 KPI 开源项目) 的 Egg.js,号称为企业级框架和应用而生。它有点像 Feathers,但是基于 Koa;另外不像 Feathers,Egg 没有自带认证功能,使用 cookie/session 鉴权。更多细节可以看如何评价阿里开源的企业级 Node.js 框架 egg?。感觉是一个不错的企业级 Node.js 框架。理念先进,功能也全。

  10. Gatsby 和 Hexo 静态网站生成。适合做文档、博客类网站。比动态 web app 加载更快。Gatsby 基于 React,比 Hexo 新,维护得更好些。

    • 在线客服
    • 关注微信
    • 联系电话
      • 欢迎咨询
      • 欢迎加入QQ群 303257430
    • 公众号:源宝网络
      • 联系电话及微信号 18902328227