IBM拥有Node.js生态系统中最热门的Express
Web框架组件,不过该公司刚刚宣布了将把它捐赠给Node.js基金会的消息。尽
管在服务器端运行JavaScript听起来很美好,但是对于非行家来说,设置一台运行Node.js的服务器却是件相当痛苦的事情。为了解决这个问
题,Express(.js)项目已在几年前被放到一起,作为Node.js的一个Web应用程序服务器框架(与面向Ruby的Sinatra类似)。

1. Express

背景:

Express, 疯一般快速(而简洁)的服务端JavaScript
Web开发框架,基于Node.js和V8 JavaScript引擎。

Express 是一个基于 Node.js 平台的极简、灵活的 web
应用开发框架,它提供一系列强大的特性,帮助你创建各种 Web
和移动设备应用。

丰富的 HTTP 快捷方法和任意排列组合的 Connect
中间件,让你创建健壮、友好的 API 变得既快速又简单。

Express 不对 Node.js 已有的特性进行二次抽象,我们只是在它之上扩展了 Web
应用所需的基本功能。

2009年6月26日,TJ
Holowaychuk提交了Express的第一次commit,接下来在2010年1月2日,有660次commits的Express
0.0.1版本正式发布。TJ和Ciaron Jessup是当时最主要的两个代码贡献者。

差不多5年的时间过去了,Express拥有了4,925次commit,现在Express的最新版本是4.10.1,由StrongLoop维护,因为TJ现在已经跑去玩Go了.

优点:

Express拥有的社区不仅仅是上面三者当中最大的,并且是所有Node.js
web应用程序框架当中最大的。在经过其背后差不多5年的发展和在StrongLoop的掌管下,它是三者当中最成熟的框架。它为服务器启动和运行提供了简单的方式,并且通过内置的路由提高了代码的复用性。

缺点:

使用Express需要手动处理很多单调乏味的任务。它没有内置的错误处理。当你需要解决某个特定的问题的时候,你会容易迷失在众多可以添加的中间件中,在Express中,你有太多方式去解决同一个问题。Express自诩为高度可配置,这有好处也有坏处,对于准备使用Express的刚入门的开发者来说,这不是一件好的事情。并且对比起其他框架来说,Express体积更大。

对于LoopBack的新手来说,一开始最容易懵逼的就是LoopBack、StrongLoop和API
Connect这几个概念之间扯不断理还乱的关系,本文将从梳理这三个概念开始,带领大家进入LoopBack的世界。

图片 1

2. Koa

背景:

koa 是由 Express
原班人马打造的,致力于成为一个更小、更富有表现力、更健壮的 Web
框架。使用 koa 编写 web 应用,通过组合不同的
generator,可以免除重复繁琐的回调函数嵌套,并极大地提升错误处理的效率。koa
不在内核方法中绑定任何中间件,它仅仅提供了一个轻量优雅的函数库,使得编写
Web 应用变得得心应手。

大概在差不多一年前的2013年8月17日,TJ
Holowaychuk(又是他!)只身一人提交了Koa的第一次commit。他描述Koa为“表现力强劲的Node.js中间件,通过co使用generators使得编写web应用程序和REST
API更加丝般顺滑”。Koa被标榜为只占用约400行源码空间的框架。Koa的目前最新版本为0.13.0,拥有583次commits。

优点:

Koa有着傲人的身材(体积小),它表现力更强;对比起其他框架,它使得中间件的编写变的更加容易。Koa基本上就是一个只有骨架的框架,你可以选择(或者自己写一个)中间件,而不用妥协于Express或者Hapi它们自带的中间件。它也是唯一一个采用ES6的框架,例如它使用了ES6的generators。

缺点:

Koa有缺点吗?

1. LoopBack

由于拥有小型和简约的特点,Express已经成为了创建可行的Node.js
Web服务的一个事实标准。然而尽管项目的作用巨大,Express过去却几经易手,甚至一度是开源社区的巨大丑闻。

3.Hapi

背景

Hapi.js 是一个用来构建基于 Node.js
的应用和服务的富框架,使得开发者把重点放在便携可重用的应用逻辑而不是构建架构。内建输入验证、缓存、认证和其他
Web 应用开发常用的功能。

2011年8月5日,WalmartLabs的一位成员Eran
Hammer提交了Hapi的第一次commit。Hapi原本是Postmile的一部分,并且最开始是基于Express构建的。后来它发展成自己自己的框架,正如Eran在他的博客里面所说的:Hapi基于这么一个想法:配置优于编码,业务逻辑必须和传输层进行分离…

Hapi最新版本为7.2.0,拥有3,816次commits,并且仍然由Eran Hammer维护。

优点:

Hapi自豪地宣称它自己是基于配置优于编码的概念,并且很多开发者认为这是一件好事。在团队项目开发中,可以很容易地增强一致性和可复用性。作为有着大名鼎鼎的WalmartLabs支持的框架和其他响当当的企业在实际生产中使用Hapi,它已经经过了实际战场的洗礼,企业们可以没有担忧地基于Hopi运行自己的应用程序。所有的迹象都表明Hapi向着成为的伟大的框架的方向持续成熟。

缺点:

Hapi绝逼适合用来开发更大更复杂的应用。但对于一个简单的web
app来说,它的可能有点儿堆砌太多样板代码了。而且Hapi的可供参考样例太少了,或者说开源的使用Hapi的应用程序太少了。所以选择它对开发者的要求更高一点,而不是所使用的中间件。

开源Node.js框架

LoopBack是以Model为核心的,提供REST
API和ORM功能的开源Node.js框架,其官网为http://loopback.io,Github地址为https://github.com/strongloop/loopback。Loopback易于上手,开发者仅需定义一些Model,就可以迅速搭建一款RESTful的Web应用。LoopBack基于Express框架,可以快速地实现Model的REST
API方法。LoopBack提供多种数据源的connector,可以轻松完成Model与各种数据源的绑定。下图是LoopBack提供的核心功能,简单点概括就是LoopBack = REST API + ORM + Client SDK

LoopBack核心功能图解

TJ
Holowaychuk创建了Express,但在几年前几乎放弃,使得开源社区对它逐渐有了掌握。尽管不少人放弃了该项目,但在StrongLoop表露出有意赞助并后续收购之后,TJ突然改变主意并很快回归。

4.egg

Egg.js
是阿里开源的企业级框架,旨在帮助开发团队和开发人员降低开发和维护成本。

egg继承于koa,而 Egg 选择了 Koa
作为其基础框架,在它的模型基础上,进一步对它进行了一些增强。

优缺点:不详。


如果你阅读到这里了,如果你恰巧在学习node,相信你已经知道该如何选择了吧。

小编才疏学浅,只能带你飞到这里了,接下来大家加油!!!

如果你在使用这些框架的过程中,有什么心得体会或好的建议,热烈欢迎你在下面留言哈。

 


 

更多angular1/2/4、ionic1/2/3、react、vue、微信小程序、nodejs等技术文章、视频教程和开源项目,请关注微信公众号——全栈弄潮儿

图片 2

Loopback版本更新时间线
  • 2013/07/25 第一个Release,v0.8.0发布
  • 2013/09/05 Release v1.2.0发布
  • 2014/07/23 Release
    v2.0.0发布。从2.x版本开始,LoopBack获得了越来越多的关注
  • 2015/12/22 Release
    v3.0.0-alpha.1发布,LoopBack团队开始着手开发3.x版本
  • 2016/10/13 v3.0.0 Release Candidate发布,进入LoopBack 3.x时代
  • 2017/04/25 Release
    v4.0.0-alpha.1发布,LoopBack团队开始着手开发4.x版本loopback-next,基于Node.js
    7.0+,TypeScript 2.0+,TypeScript Node 3.0+实现。

在同意将Express出售给StrongLoop之后,TJ遭到了开源社区的蔑视,因为收购这个关键项目的公司,有着直接让它在自己控制下的兴趣。

2. StrongLoop

丑闻主要围绕着一个事实,即StrongLoop是一家提供Node.js产品的企业,它得到了一个重要的开源项目的控制权,利用了开源社区和它的许多竞争对手。

被IBM收购的IT公司

首先,StrongLoop是一个公司的名字,该公司在2012年成立于旧金山,是LoopBack的主要贡献者,其官网为https://strongloop.com/。2015年9月StrongLoop被IBM收购。

万幸的是StrongLoop并没有滥用其地位,且该公司在去年秋季被IBM所收购,不过这又产生了同样的问题——毕竟IBM是一家以营利为目的的企业。

Node.js开发套件

此外,在LoopBack
2.x时代,StrongLoop是LoopBack应用程序管理套件的Node.js安装包的名字,安装后可以使用LoopBack框架、slc命令行工具、StrongLoop
PM、StrongLoop Arc等服务。其中StrongLoop
Arc是一个GUI管理工具,该工具提供LoopBack应用的创建和部署等功能,StrongLoop
PM则负责Node.js的进程监控、性能分析、负载均衡等功能。

StrongLoop Arc

被IBM收购之后,StongLoop开始开发LoopBack 3.0
,并逐渐把Arc的功能迁移到了IBM的API Connect。2017年4月,StroogLoop
Arc完全转入API Connect,官方不再维护。

现在,在收购StrongLoop五个月之后,蓝色巨人已经决定平息所有人的恐惧——将Express捐赠给Node.js基金会,并成为它的首个孵化项目。

3. IBM API Connect

这意味着决定Express未来的所有决定,都将有Node.js领导层作出,而IBM开源技术副总裁Todd
Moore也会是董事会的一员。此外,董事会里还有来自许多其它在系统中部署了Node.js的企业代表。

API全生命周期解决方案

IBM API
Connect的前身是IBM
API
Management,一个API代理和托管平台,提供创建、管理和监控Pro�xy
API的功能,最后一个稳定版为2015年发布的v4.0.2。IBM收购StrongLoop之后,�将后者旗下的产品�整合到了API
Management,并重新命名为IBM API Connect,版本号直接从v5.0.0开始。

IBM API
Connect被打造成一个API全生命周期的管理工具,号称是业界第一个综合的一站式端到端解决方案:

API Connect component view

API Connect�与API Management相比,Developer Portal、API Manager和API
Gateway这三个已经存在的上层组件得到了增强,而新增的Developer
Toolkit等三个底层组件则弥补了API
Management在API开发和部署方面的短板。凭借API
Connect,开发者可以�快速开发自己的Micro�service应用,创建和暴露REST
API,��配置API的访问和认证等安全策略,简化了对API生命周期的控制。

[编译自:Soft
Pedia]

Node.js开发套件

�Developer
Toolkit这个组件中继承了原Strong�Loop开发套件的所有功能,除LoopBack框架之外,还包括API
Designer(原StrongLoop Arc)、apic命令行工具(原slc CLI)以及API
Microgateway。其Node.js安装包为apiconnect,安装后即可使用�Developer
Toolkit组件提供的功能。

(文/cnbeta)    

�云服务

与其他所有IBM的产品一样,API
Connect�也被打包成Bluemix的云服务,用户付费后无需安装便可使用。所以,API
Connect即�是一个API�全生命周期解决方案的名称,也是一个Bluemix上的付费服务,同时Developer
Toolkit的Node.js安装包也以它来命名。

参考资料

  1. StrongLoop Node.js API
    Platform
  2. API Connect
    components
  3. Getting Started with IBM API Connect: Concepts and Architecture
    Guide
  4. IBM API Management –
    Wikipedia
  5. The busy JavaScript developer’s guide to
    LoopBack