NodeJS 框架简介

随着Node.js逐渐普及,框架也开始着手加快工作流程。有许多框架允许你构建实时的端到端网络应用,而无需任何其他第三方Web服务器、应用服务器、工具和技术。Koa最灵活,让你做你想要的一切,最大限度的满足开发需求。但是,在最初你需要投入更多的努力,更加依靠开发者作出正确的决策。而另一方面,像Mean.io、Meteor有自己的标准结构和技术体系,灵活性较差,然而这些框架不会给开发者太多做错误决策的空间。让我们来看看目前常用的Node.js框架,并帮助你建立实时的、各种规模和复杂性的可扩展Web应用程序。

1. Node.js Express

对于一个已经在使用Node.js 的开发人员来说,Express或者”Node.js express”并不是一个新鲜事。Express框架提供了对Node.js 原生API的比较好的封装,从而使开发者更加容易地使用Node.js 。

Express框架提供了用来开发强壮的web/移动应用,以及API的所有功能。并且开发人员还能够方便地为它开发插件和扩展,从而增加Express的能力。下面列出了一些Express提供的基本的功能:

-可以和任何的第三方数据库进行通讯

-可以使用任何的用户认证方式

-可以使用任何符合Express接口定义的模板引擎

-可以按照需要定义工程目录

通过使用Node Express,我们可以使用更少的代码来实现功能。至少通过使用Node Express,我们可以实现中间件来响应http请求,可以定义路由表来定义对不同请求的响应函数,还可以使用模板引擎来输出html页面。

对于一个NodeJS开发新手来说,Express还提供了如下的好处:

1)Express的学习曲线并不陡峭,可以很快上手;

2)Express有非常庞大的社区,和组织良好的文档,新手可以很容易得到所需要的一切。

Express根据MIT协议进行开源,目前StrongLoop对它提供支持。

我们可以通过Express的官方网站expressjs.com获得更多的信息

2. Sails.js(Node.js MVC)

Sails作为一个非常稳固的Node.js 框架,提供了建立任何规模的web应用所需要的所有功能功能。

Sails.js在底层使用了express框架来提供对http请求的处理,同时使用Socket.IO框架来处理WebSocket请求。同时作为一个前端应用开发框架,它允许开发人员选择他/她熟悉的技术来开发应用。

同时Sails.js也通过waterline框架实现了ORM功能。通过这个功能,我们的应用程序可以在不进行大的修改的前提下,就可以从一个后端数据库,切换到另外一个后端数据库(也可以是一个NoSQL数据库)。

Sails特别适合用来开发对数据的实时更新有较高要求的应用,比如多人棋类游戏,单页web应用等等。如果我们对Ruby、Django或者Zend有一定的了解,那么我们将非常容易理解Sail中的概念。

简单来说,Sails.js既给开发者提供了一个优秀的MVC框架,也提供了一定的灵活性,让开发者可以自主选择前端开发方式和后端的数据库。Sails.js是由MikeMcNeil创建的,现在由Treelineandbalderdash提供支持。Sails.js在MIT协议下开源。

我们可以在网站sailsjs.org上找到更多关于这个框架的内容。

3. KOA

KOA是Node.js MVC框架的后起之秀,在2013第四个季度才发布了第一个版本。开发KOA的人员基本来自Express开发团队,TJHolowaychuk是KOA开发团队的领导者。虽然KOA大部分开发人员来自Express,但是他们使用了完全不同的技术来开发KOA,并且KOA正成为Express一个强有力的竞争对手。

KOA框架的核心是ES6的generator。KOA使用generator来实现中间件的流程控制,使用try/catch来增强异常处理,同时在KOA框架中我们再也看不到复杂的callback回调了。

KOA框架本身非常小,只打包了一些必要的功能,但是它本身通过良好的模块化组织,让开发人员可以按照自己的想法来实现一个扩展性非常好的应用。

许多JavaScript/Node.js 的忠实开发者都开始选择使用KOA来开发新的项目,因为KOA提供了更多的灵活性开发应用程序。

我们可以通过koajs.com获取更多的信息。

4. Meteor

Meteor框架是Node.js 上最出色的全栈框架。项目在GitHub上有28K+的赞,拥有大量的自定义包,庞大的社区支持,非常好的教程和文档。在这个领域Meteor毫无疑问是王者,我们可以用它构建纯Javascript的实时Web和手机应用。

Meteor最优秀的部分是,无论是服务器端的数据库访问,商业逻辑实现,还是客户端的展示,所有的流程都是无缝连接,开箱即用。整个框架使用统一的API,MeteorAPI同时适用于客户端和服务器端。

它使用的DDP协议可以让我们在后端连接简单的数据库服务、企业数据仓库、甚至IOT传感器。Meteor带有自己默认的栈,但又有足够的灵活性,可以让我们选择自己的技术方案。如果我们不需要尝试其他的框架或者没有其他的条件限制,我们可以直接使用默认配置,进行快速地应用开发。

Meteor拥有专业化的开发团队,顶级风投的大量资金支持,这都让Meteor能够时刻保持业界领先。

我们可以通过mean.iometeor.com网站进一步了解Meteor。

5. Mean.IO

Mean是MongoDB、Express、AngularJS和Node.js 捆绑在一起的组合。基本上说只要有它,我们就拥有了数据库层,服务器端和网页前端的整套工具,足以开发所有类型的现代网络应用。

Mean是一个完整独立的包,它涵盖了应用开发的所有方面。尤其适合于那些需要快速开始开发的人。它内置多种技术而且在联合使用时变现非常好。可以用于创建任意大小和复杂度的应用。

使用Mean,开发者可以避免经历混合和匹配不同的技术栈。通过mean栈,我们可以减少安装和配置MongoDB,Express,Angular和Node.js需要的时间。Mean.io的另一个巨大好处就是所有的栈都使用JavaScript,服务器端Express对MongoDB的访问(json)和通多Angular从Node到客户端。

在这里mean.io了解更多Mean.io的相关信息。

还有一个名为mean.js的mean分支也相当流行。

发表评论

电子邮件地址不会被公开。 必填项已用*标注