不可错过的Node.js框架

前言

Node.js是由Ryan Dahl于2009年建立的。它是一个开源的跨平台运行时环境,用于开发服务器端和网络应用程序,它是基于Google Chrome V8 JavaScript引擎构建的。Node.js使用事件驱动,非阻塞I/O模型而得以轻量和高效,很是适合在分布式设备上运行数据密集型的实时应用。你能够经过在Node.js中运行JavaScript,使用Ruby或者PHP语言作想作的任何事情。
因为其具备能够方便地搭建响应速度快、易于扩展的网络应用等特性,Node.js受到了Netflix,Groupon,PayPal,LinkedIn,Uber,eBay等公司的信任,这进一步促进了Node.js的发展。
也由于它响应快,易于扩展等特色,也是实战开发的首选。开发人员之因此喜欢Node.js,是由于其将脚本语言(JavaScript)的易用性和有着各类框架可供选择的Unix网络编程的强大功能相结合了。前端

Node特色

一、快速:V8 Google Engine受权Node.js提供一个快速发布周期。这使得网络链接,文件系统和数据库的读取和写入超级快。
二、实时性:websocket协议的强大功能容许客户端和服务器之间轻松快速通讯。它是即时的,是实时应用程序的理想选择,如聊天或游戏这类应用。
三、灵活:开发人员能够为客户端,服务器端,后端和前端应用程序使用相同的语言(能够同时执行),它提供端到端的解决方案。
四、跨平台支持:Node.js能够在任何操做系统上虚拟运行。这意味着Node.js可移植,因此,应用程序可以支持普遍的用户受众。
五、单线程:Node.js在不新增额外线程的状况下,依然能够对任务进行并行处理——Node.js是单线程的。它经过事件轮询(event loop)来实现并行操做,对此,咱们应该要充分利用这一点——尽量的避免阻塞操做,取而代之,多使用非阻塞操做。
六、事件循环:Node.js使用事件循环来代替可伸缩性,而不是进程或线程。服务器在回调定义结束时自动进入事件循环。
七、社区:Node.js背后有一个强大的,多样化的,活跃的和快速扩张的社区支持。开发人员使用Github共享成果,提出功能请求、上传包或进行错误修复。node

流行的开源Node.js框架

针对如今开源比较流行的几大框架作一个简单的介绍,并不深究。web

Actionhero

这是一个用于Node.js的快速,轻量级和多重传输的API服务器,很是适合用于建立一个易于使用的工具包来制做可重用和可扩展的API。
能够提供给http sockets,tcp sockets和web sockets。actionHero.js提供建立易用的,可重用可伸缩的API工具包。客户端链接到actionHero.js服务器就可使用APIs,使用静态内容和相互沟通。
actionHero.js服务器能够处理请求和任务(延迟action 好比:send e-mail或者是后台任务)。
Github stars:1,499
Github contributors: 67ajax

Loopback

这是一个由IBM建立的高度可扩展的API框架,容许使用很是少的编码建立动态的端到端REST API。它经过为开发人员提供一个简单的API工具来补充Express框架。
Loopback API能够链接设备,并与Android,iOS和AngularJS SDK集成以建立客户端应用程序。对于应用程序的图形版本,Loopback使用StrongLoop Arc。
Github stars: 7,817
Github contributors: 80数据库

Restify

这是一个为REST API而建立的轻量级框架,它是一个经过API提供数据的服务器端框架。Restify重点关注调试和分析,以优化服务器。
Github stars: 5,966
Github contributors: 142express

Socket.io

该框架的目的是支持实时web应用(例如文档协做和数据交换)。Socket.io容许Web客户端和服务器之间的事件驱动通讯。socket.io是一个跨平台,多种链接方式自动切换,作即时通信方面的开发很方便,并且能和expressjs提供的传统请求方式很好的结合,便可以在同一个域名,同一个端口提供两种链接方式:request/response, websocket(flashsocket,ajax…).
Github stars: 28,887
Github contributors: 123
Full Stack
如下框架专一于全栈支持,它们涵盖了应用程序开发的每一步,从中间件和UI到API和数据库集成。编程

Meteor

Meteor是用于构建实时web应用程序的模型视图控制器(MVC)框架,其与服务器不断同步。它是内置的一套预编写自包含模块,支持应用程序代码编写。
使用Meteor构建的应用程序能够在OS X,Windows和Linux操做系统上运行。
Github stars: 36,081
Github contributors: 321后端

Keystone

此框架是数据库驱动Web应用程序和API的理想选择,其中Express,MongoDB和Mongoose是Node堆栈的关键组件。
Github stars: 8,352
Github contributors: 181
Sinatra-Like
如下是轻量级框架,其功能相似于Sinatra。api

Express

Express是基于Node.js平台快速、开放、极简的web开发框架。Express是最重要的节点框架之一,是构建Web/移动应用程序和API的理想选择。Express不是对Node.js已有的特性进行二次抽象,只是在它之上扩展了Web应用所需的基本功能。
Github stars: 28,683
Github contributors: 192服务器

Koa

这是一个无回调的轻量级中间件框架,容许编写Web应用程序和REST API,还能够添加新功能并自定义路径中的内容,它支持ES6和最新的JavaScript版本。
对于Node.js的初级者来讲,这不是理想的第一选择。
Github stars: 12,779
Github contributors: 91

Hapi

Hapi框架是快速构建和API测试的理想选择,也可使用Hapi构建完整的网站。它有一个十分不错的插件集合,使其可以在不破坏其他代码库的状况下,只在局部进行工做,对于团队项目而言十分受用。
因为Hapi是由Walmart开发人员建立的,所以它提供了企业级功能。
Github stars: 7,015
Github contributors: 151

在几年的时间里,因为Node.js诸多的有点,收到企业和开发者的欢迎,逐渐发展成了一个成熟的开发平台,吸引了许多开发者,并进一步促进大前端的发展和快速移动框架的发展。

本文同步分享在 博客“xiangzhihong8”(CSDN)。
若有侵权,请联系 support@oschina.cn 删除。
本文参与“OSC源创计划”,欢迎正在阅读的你也加入,一块儿分享。

相关文章
相关标签/搜索