在浏览器之外运行JavaScript对于JavaScript爱好者来说是惊人的,当然也是Web应用程序开发领域最大的进步之一。全世界的开发人员都张开双臂拥抱NodeJS。对于外行来说,Node.js是一个JavaScript运行时,它允许您在浏览器之外的服务器上运行JavaScript代码。它建立在GoogleChrome的V8虚拟机引擎之上,该引擎用于在Chrome浏览器中支持JavaScript。NodeJS的日益流行是因为它允许您仅使用JavaScript构建大规模、实时、可扩展的移动和Web应用程序。随着节点生态系统的发展,该框架也着手加快工作流程。有许多Node.js框架允许您构建实时端到端Web应用程序,而无需任何额外的第三方Web服务器、应用程序服务器、工具和技术。通用的Node框架就像快递,而Koa和Hapi则更加灵活,让你想做什么就做什么,最大程度的满足你的开发需求。但是,您最初需要付出更多努力,并更多地依赖开发人员做出正确的决定。另一方面,像Mean.io、Meteor、Derby、Mojito都有自己的标准架构和技术体系,灵活性较差。然而,这些框架并没有给开发人员太多做出错误决定的空间。让我们来看看当今可用的最好和最大的NodeJS框架,并帮助您构建各种规模和复杂性的实时、可扩展的Web应用程序。1.Node.jsExpress对于已经在使用node.js的开发人员来说,Express或“node.jsexpress”并不是什么新鲜事。Express框架对node.js原生API进行了更好的封装,让开发者更容易使用node.js。Express框架提供了开发强大的网络/移动应用程序和API的所有功能。并且开发者可以方便地为其开发插件和扩展,从而增加Express的能力。下面列出了Express提供的一些基本功能:可以与任何第三方数据库进行通信;可以使用任何用户认证方式;可以使用任何符合Express接口定义的模板引擎;可以根据需要定义项目目录。通过使用NodeExpress,您可以用更少的代码实现功能。至少通过使用NodeExpress,你可以实现中间件来响应http请求,你可以定义路由表来定义不同请求的响应函数,你可以使用模板引擎来输出html页面。对于NodeJS开发新手,Express还提供了以下好处:Express的学习曲线并不陡峭,可以快速上手;Express拥有非常庞大的社区和组织良好的文档,新手可以轻松获得所需的一切。Express是MIT许可证下的开源软件,目前由StrongLoop提供支持。您还可以通过Express的官网expressjs.com获取更多信息。2.Sails.js(node.jsmvc)Sails作为一个非常扎实的nodejs框架,提供了构建任何规模的web应用程序所需的所有功能。Sails.js底层使用express框架提供对http请求的处理,使用Socket.IO框架处理WebSocket请求。同时作为前端应用开发框架,允许开发者选择自己熟悉的技术开发应用。同时Sails.js也通过水线框架实现了ORM功能。通过此功能,您的应用程序可以从一个后端数据库切换到另一个后端数据库(或NoSQL数据库)而无需进行重大修改。Sails特别适合开发对实时数据更新要求高的应用,比如多人桌游、单页Web应用等。如果您对Ruby、Django或Zend有一定的了解,那么您将很容易理解Sail中的概念。简单来说,Sails.js不仅为开发者提供了一个优秀的MVC框架,还提供了一定的灵活性,让开发者可以自主选择前端开发方式和后端数据库。Sails.js由MikeMcNeil创建,现在由Treeline和balderdash提供支持。Sails.js在MIT许可证下是开源的。您可以在网站sailsjs.org上找到有关此框架的更多信息。3、KOAKOA是node.jsmvc框架的后起之秀,第一个版本发布于2013年第四季度。开发KOA的人基本来自Express开发组,TJHolowaychuk是KOA的负责人开发团队。虽然KOA的开发者大多来自Express,但他们使用的是完全不同的技术来开发KOA,KOA正在成为Express的有力竞争者。KOA框架的核心是ES6生成器。KOA使用generator实现中间件流程控制,使用try/catch增强异常处理,在KOA框架中你再也看不到复杂的回调。KOA框架本身很小,只封装了一些必要的功能,但它本身通过模块化很好地组织起来,让开发者可以按照自己的想法实现一个扩展性很强的应用。许多忠实的JavaScript/Node.js开发者都选择使用KOA来开发新的项目,因为KOA为开发应用程序提供了更大的灵活性。您可以在koajs.com上获得更多信息。4.MeteorMeteor框架是Node.js上最优秀的全栈框架。该项目在GitHub上有28K+点赞,拥有大量自定义包、庞大的社区支持、非常好的教程和文档。Meteor是该领域无可争议的王者,您可以使用它以纯Javascript构建实时Web和移动应用程序。Meteor最好的地方在于,无论是服务器端的数据库访问、业务逻辑的实现,还是客户端的展示,所有流程都是无缝衔接的,开箱即用。整个框架使用统一的API,MeteorAPI同时适用于客户端和服务端。它使用的DDP协议允许您在后端连接简单的数据库服务、企业数据仓库,甚至物联网传感器。Meteor带有自己的默认堆栈,但足够灵活,可以让您选择自己的技术解决方案。如果不需要尝试其他框架或者没有其他条件,可以直接使用默认配置进行快速应用开发。Meteor拥有专业的开发团队和顶级风险投资家的大量资金支持,这让Meteor始终保持行业领先地位。您可以在meteor.com了解更多关于Meteor的信息。5.Derby.jsDerby.JS是一个全栈框架,就像它的直接竞争对手Meteor、Mean.io和Mojito一样。它运行在Nodejs+mongo+Redis之上。Derby的主要部分是一个名为Racer的数据同步引擎,它可以方便地在数据库、服务器和浏览器之间同步数据。Racer确实可以让基于Derby框架的应用运行得更快,无论是在浏览器端还是服务器端,都是单页应用的绝佳选择。Derby经常与行业领导者Meteor进行比较。Meteor项目已经开发了很长时间,因此它可以提供更多的开箱即用的功能,使得在更短的时间内更容易开发复杂的Web应用程序。Derby更适合需要运行速度更快的应用程序,其模块化的方式可以让应用程序更加灵活,更容易扩展。Derby最近的发展有点慢,但它并没有出局,仍然有可能改写Nodejs全栈框架的游戏规则。您可以在derbyjs.com了解更多关于Derby的信息。6.Flatiron.js(Node.jsMVC框架)Flatiron框架背后的核心思想是允许你使用它提供的组件和一些第三方库来构建你自己的全栈框架。很酷不是吗?我个人非常喜欢这种方式。然而,这会增加复杂性,并且可能会被开发人员使用错误的组件搞砸。您可以将其称为由多个独立组件松散组装而成的全栈MVC框架。Flatiron框架支持Director,这是一个URL路由组件,它是用JavaScript自上而下构建的,不需要任何依赖。Flatiron通过名为Plates的模板引擎支持模板语言,而数据管理通过json实现,可以与任何类型的数据库一起使用。Flatiron现在由Nodejitsu和其他社区成员维护并且做得很好,一个不太受欢迎但值得一看的框架。您可以在flatironjs.org上获得更多信息。7、HapiHapi是少数不依赖Express的node.js框架之一,现在甚至完全独立于Express。最近,许多开发人员选择Hapi而不是Express,使其或多或少成为Express的竞争对手。Hapi在众多nodejs框架中算不上老手,但它却在其中成功打造了自己的生态。Hapi致力于将节点HTTP服务器、路由和业务逻辑完全分离,更多地关注如何通过配置而不是代码来控制事物。Hapi最初是由EranHammer和他在沃尔玛实验室的团队开发的。此后以极快的速度流行起来,现在已经成为MIT许可下的开源框架,可以免费下载使用。Disney、Yahoo、Pebble、beatsmusic和Walmart等公司都使用HAPI作为其一个或多个项目的Web应用程序框架,其影响力是显而易见的。您可以在hapijs.com上找到有关Hapi的更多信息。8.Mean.IOMean是MongoDB、Express、Angular和Node.js的捆绑组合。基本上,只要你有了它,你就拥有了数据库层、服务器端和Web前端工具,足以开发各种类型的现代Web应用程序。Mean是一个完整的独立包,涵盖了应用程序开发的所有方面。特别是对于那些需要快速开始开发的人。它内置了多种技术,结合使用时效果非常好。可用于创建任何规模和复杂性的应用程序。使用Mean,开发人员可以避免经历混合和匹配不同技术堆栈的过程。使用平均堆栈,您可以减少安装和配置MongoDB、Express、Angular和Node.js所需的时间。Mean.io的另一个巨大好处是所有堆栈都使用JavaScript、服务器端对MongoDB(json)的快速访问以及从Node到客户端的tondoAngular。在此处了解有关Mean.io的更多信息-mean.io。还有一个相当流行的mean分支,叫做mean.js。9.MojitoMojito是由雅虎开发的,一炮而红。然而,随着该框架的最新成功,它很快就坐在了替补席上,就像Meteor和Meanstack一样。Mojito还是一个MVC应用程序框架,非常适合使用HTML5、JavaScript和CSS3创建高性能Web和移动应用程序。Mojito的基本目标是为构建基于标准的跨平台应用程序提供一个框架。使其可以同时运行在客户端和服务器端,并达到高性能。您可以在Yahoo开发者页面-mojito上获得更多信息。10、SocketStreamSocketStream是一个有趣的框架,专注于客户端和服务端数据的快速同步,致力于前后端数据的实时更新。它最大的特点是不严格要求你使用指定的客户端技术,也不限制数据库的ORM。我倾向于将它与其具有相同功能的兄弟项目Sail.js进行比较,它更适合单页Web应用程序、多用户游戏、聊天客户端、Web应用程序、交易平台以及需要从服务器实时将应用推送到客户端。服务器和客户端使用JSON传输数据。理想情况下,websockets用于在服务器事件发生时自动向客户端推送数据。套接字流由OwenBarnes创建,现在由PaulJensen和团队维护。他们的工作赋予了这个框架应有的荣耀。SocketStream框架最近几个月发展得很好,前景一片光明。关于SocketStream的更多信息,请访问-github上的socketstream。其他类似的框架有:total.js、Geddy.JS、Locomotive、compound和Restify。结论Web和应用程序开发的格局正在迅速变化,开发人员转向快速框架和干净的项目交付。使用节点框架的最大优势是它提供了开箱即用的高级结构,您可以专注于扩展您的应用程序,而不是试图花费在构建上。该框架提供了多种特性,工作在不同的层上,并试图解决构建实时的常见问题,并解决可扩展和复杂的Web应用程序中的速度问题。本文中讨论的框架是当今市场上最好的node.js框架。
