最流行的Node.js应用开发框架简介

快速开发而又容易扩展,高性能且鲁棒性强。Node.js的出现让所有网络应用开发者的这些梦想成为现实。但是,有如其他新的开发语言技术一样,从头开始使用Node.js的最基本功能来编写代码构建应用是一个非常划不来的耗时的事情。这个问题的解决方案非常简单且已经经受起时间的考验:使用一个已经提前打造好的开发框架。因此才会有如此多的如Express.js,Koa,Sails.js等框架的概念提出来并加以实现。

这些开发框架的角色非常简单。就是要去为应用开发人员节省时间,让我们不用话费太多精力在一些不必要的事情上面。一旦一个框架可以满足开发人员的“用最小的代价来获得同样的产出”的理念的话,该框架就可以大行其道起来。

在当今的Node.js界中还没有一个框架可以一统江湖,虽然Express.js依然是迄今为止最流行的框架。但当今江湖上还有很多其他的门派在争夺武林盟主之位。不能说你丐帮成员众多别人就非要加入你丐帮的,大家都是为了学个防身之术(快速开发等Node.js框架),你丐帮有降龙十八掌(Express.js),人家武当还有太极(Sails.js等)啦。

总体来说你可以将Node.js开发框架归结为两类: 
- 精简型框架 
- 全栈型框架

下面我们就对这两种框架进行探讨。

精简型框架

精简型框架提供的是最基本的功能和APIs,这类框架本身就是被设计成用来改善Node.js开发过程中的主要方面的。但是,这些框架主要关注的方向都是提供基本的MVC开发框架功能和改善编码体验,而不是Node.js本身没有的其他功能和技术的支持。下面是一些当今流行的精简型的Node.js框架。

Express.js- 最流行的框架


Express.js毫无疑问是当今最受网络应用开发人员喜爱的Node.js开发框架了。作为一个有弹性的,轻量级的,容易使用框架,Express.js完全可以用来开发纯JS或混合型的便于扩展的移动应用。如果网上一些数据不是空穴来风的话,当今世上已经有26000个网络和移动应用是使用该框架进行开发的。其中一些有名的使用者粉丝包括 MySpace, Countly, Yummly, Mozilla Persona, 以及Geekli.st。所以,如果你是一个Node开发新手的话,也许Express.js就是你应该乘坐的快速列车。

KOA - Node.js下一代开发框架


作为一个由Express.js框架幕后开发团队进行开发和维护的另外一个Node.js开发框架,KOA是一个被热捧并冠名为Node.js的下一代开发框架的网络开发框架。因为该框架是由Express.js进化而成,所以你可以看到他们的很多相似之处,当然,区别肯定是有的了。它提供了一些额外的新功能,而该框架的中间件会把这些新功能和其他已有功能给隔离开来。另外,该框架还提供了高效开发和便于使用等功能特性来简化启动服务器和服务器相关功能的流程。

Total.js - 一个摩登的网络应用开发Node.js框架


尽管Total.js可以被认为是一个极简型的框架,但是它依然是可以作为Node.js框架的一个补充。该框架的目标用户是那些想要打造具有非常强大的可扩展性的应用的开发者。如果你现在想要打造的是一个网络应用,而该应用也许今后会进行大量的扩展的话,Total.js也许是一个完美的选择。

Sails.js


作为一个像Ruby On Rails一样的提供MVC开发模式模拟功能的框架,Sails.js其实是一个鲁棒的可扩展的Node.js开发框架。它自身是一个服务驱动(service-driven)的架构,而它的API集又是以数据驱动的方式进行提供的。它最大的用处应该就是用来打造多用户游戏,网络聊天,实时交互应用,以及企业泣别的Node.js应用。

全栈型Node.js开发框架

全栈型开发框架才是NodeJS所以发光发热的地方。大部分全栈型框架都包含了必须的应用开发基础库,完整的模版引擎,网络sockets,以及持久化的库来加速对实时可扩展的网络和移动应用进行构建。以下是当今最盛行的全栈型Node.js框架:

Meteor - 极其简单的应用开发环境


作为一个设计成集成了所有MEAN开发框架功能的框架,Meteor是一个JavaScrtip框架的集大成者,JavaScritp既可以运行在客户端浏览器中,同时也可以在服务器端的一个Node.js容器的Meteeor服务器中运行。另外,它还支持HTML代码,CSS,以及其他有用的静态工具。 
所有这些功能在Meteor框架中都是非常有弹性的组织起来的,你可以很方便的用如文件目录树请求的方式进行使用。客户端和服务端各个组件的打包和数据传送都是由Meteor框架自动完成的。

Mean.IO- 完整的MEAN栈JavaScript开发框架


MEAN.IO是一个完全的JavaScript开发框架,它是专门设计成来简化以及加速开发基于MEAN栈的网络应用的。该框架自带了可以让你把MEAN框架的四个技术进行无缝接合的工具,比如,MongoDB, Express.js, AngularJS, 以及Node.js,甚至其他开创性的如Bootstrap等技术。同时它还拥有了很多HTML和CSS以及其他额外的JavaScript代码来大大的降低你的编码时间。但是,该框架最亮眼的其实是它强悍的MVC架构。你可以使用它来创建好模块化的代码,然后用其作为工具来打造出精致的网络或移动应用。MEAN.IO包是即插即用的,所以一旦有新功能包发布,你就可以像使用npm包一样来获得并使用它们。 
MeanIO包系统把所有包都集成到mean项目里面,就好像这些代码本身就是mean自身的一部分一样。同时它也给开发者提供了所有必须的工具来把我们的包集成到我们的项目中。

----------完----------

引用英文原文:http://www.algoworks.com/blog/most-popular-node-js-frameworks-for-app-development/

作/译者

微信知识共享公众号

CSDN

天地会珠海分舵

TechGoGoGo

http://blog.csdn.net/zhubaitian

 

最流行的Node.js应用开发框架简介的更多相关文章

  1. 当今最流行的Node.js应用开发框架简介

    快速开发而又容易扩展,高性能且鲁棒性强.Node.js的出现让所有网络应用开发者的这些梦想成为现实.但是,有如其他新的开发语言技术一样,从头开始使用Node.js的最基本功能来编写代码构建应用是一个非 ...

  2. Node.js 教程 01 - 简介、安装及配置

    系列目录: Node.js 教程 01 - 简介.安装及配置 Node.js 教程 02 - 经典的Hello World Node.js 教程 03 - 创建HTTP服务器 Node.js 教程 0 ...

  3. Node.js Web 开发框架大全《路由篇》

    这篇文章与大家分享优秀的 Node.js 路由(Routers)模块.Node 是一个服务器端 JavaScript 解释器,它将改变服务器应该如何工作的概念.它的目标是帮助程序员构建高度可伸缩的应用 ...

  4. Node.js Web 开发框架大全《中间件篇》

    这篇文章与大家分享优秀的 Node.js 中间件模块.Node 是一个服务器端 JavaScript 解释器,它将改变服务器应该如何工作的概念.它的目标是帮助程序员构建高度可伸缩的应用程序,编写能够处 ...

  5. Node.js Web 开发框架大全《静态文件服务器篇》

    这篇文章与大家分享优秀的 Node.js 静态服务器模块.Node 是一个服务器端 JavaScript 解释器,它将改变服务器应该如何工作的概念.它的目标是帮助程序员构建高度可伸缩的应用程序,编写能 ...

  6. Node.js学习之简介

    1.简单的说Node.js就是运行在服务端的javaScript: 2.Node.js是一个基于Chrome javaScript运行时建立的一个平台: 3.Node.js是一个事件驱动I/O服务端J ...

  7. Node.js安装和简介

    Node.js是基于Chrome的V8 JavaScript引擎构建的JavaScript运行平台.Node.js 使用了一个事件驱动.非阻塞式 I/O 的模型,使其轻量又高效. Node.js 的包 ...

  8. 使用node.js的开发框架express创建一个web应用

    1.1.1:搭建环境     1.安装Express           按键:Windows+R=>输入cmd,打开命令行,输入 npm install -g express@3 我们需要用全 ...

  9. Node.js 入门手册:那些最流行的 Web 开发框架

    这篇文章与大家分享最流行的 Node.js Web 开发框架.Node 是一个服务器端 JavaScript 解释器,它将改变服务器应该如何工作的概念.它的目标是帮助程序员构建高度可伸缩的应用程序,编 ...

随机推荐

  1. myEclipse项目部署按钮失效了,怎么办?

    myEclipse项目部署按钮失效了,按了以后没反应,怎么办? 步骤如下: 1.首先关闭MyEclipse. 2.然后删除Workspaces目录(存放您MyEclipse项目的地方)下的 " ...

  2. rhel6使用的版本数部分intel xeon处理器时间bug

    可惜在总前几天"oracle操作和维护的高级别小组"于.BBQ 上帝说,大量RHEL的bug.这bug在这个例子中,下面的URL: https://access.redhat.co ...

  3. 《Lua游戏开发实践指南》读后感

    书籍地址:http://book.douban.com/subject/20392269/ 一句话点评该书:想用Lua作游戏脚本开发的同学值得一读! (一)本书特点 市面专门讲Lua的中文书籍非常少, ...

  4. hdu 5106 Bits Problem(数位dp)

    题目链接:hdu 5106 Bits Problem 题目大意:给定n和r,要求算出[0,r)之间全部n-onebit数的和. 解题思路:数位dp,一个ct表示个数,dp表示和,然后就剩下普通的数位d ...

  5. Sass 基础和入门

    css本身很有趣,但是随着样式表变大,会越来越复杂,更加难以管理.css预处理器在这里就能帮上忙了.SASS 让你使用在css中不存在的特性,譬如变量.嵌套.mixins(混入),继承和一些其他好的特 ...

  6. 一步一步学习ASP.NET 5 (三)- 认识新的Web结构

    编者语 : 今天微软的两大盛事,早上有久违的Microsoft HEC 2015 晚上有DotnetConf 2015.假若你做微软的技术怎么能够错过呢?说说我的连载吧,前两篇分别介绍了ASP.NET ...

  7. HTML5学习笔记简明版(10):过时的元素和属性

    被遗弃的元素(Element) 这个小节里列出的元素在HTML5里将不再使用,现有文档升级到 HTML5的话能够使用一些替代方案.比如parser section 能够处理isindex 元素的功能. ...

  8. (插播)unity的 异常捕捉和 ios Android 崩溃信息的捕捉。

    近期 做些准备性得工作和有意思的事情.所以近期做了一个适合ios和android 错误信息捕捉的unity插件. 两个功能,app崩溃也就是闪退 是开发人员 非常头疼的一件事,还有就是一些莫名得错误 ...

  9. 线程池ThreadPoolExecutor使用简介(转)

    一.简介 线程池类为 java.util.concurrent.ThreadPoolExecutor,常用构造方法为: ThreadPoolExecutor(int corePoolSize, int ...

  10. Learning JavaScript(0)_Concepts

    作用域,嵌套函数和闭包 <script type="text/javascript"> function foo(){ var a = 10; function bar ...