二方土君

你可以使用这9个Node.js框架来搭建你的下一个项目

二方土君 · 2016-12-31翻译 · 1256阅读 原文链接

这是一篇关于Node.js框架的博文。其中你可以从Cloud 66平台中用node.js搭建你的下一个项目。这篇博文主要探讨了用Node.js的好处,其中包括Cloud 66对Node的简要概述和对Node中每一个框架的介绍。

Node.js

Node.js在2009年被Ryan Dahl发明。它是一个开源的、跨平台运行环境的服务端或网络应用。Node.js是在谷歌Chrome V8 JavaScript引擎上开发的。这样你就可以通过Node.js用JavaScript做任何你能用Ruby或者PHP实现的东西。

现在Node.js已经被各大平台使用,其中包括Netflix, Groupon, PayPal, LinkedIn, Uber, eBay等等。如果你想知道更多关于谁在使用Node.js,可以通过StackOverflow 调查查看。

为会开发者会喜欢Node.js?

以下用一个短列表来说明为什么开发者愿意使用Node.js来开发他们的应用。

  • 快: 谷歌V8引擎使Node.js会有一个很快地发布周期,正因如此Node.js可以超快地进行网络连接、文件系统和数据库的读写。

  • 实时: 强大的websocket协议可以容易和快速让客户端和服务端之间进行通信。Node.js是像聊天室或游戏那样的实时应用的快速的解决方案。

  • 灵活的: 开发者可以用同一种语言来开发他们应用的客户端、服务端、后端和前端(这使得开发者可以在同一时间里实现全部功能)。Node.js还提供了端对端的解决方案给开发者。

  • 跨平台的支持: Node.js虚拟地运行在所有操作系统上,这说明了Node.js很方便地支持广大用户。

  • 线程: Node.js 通过非阻塞的I/O调用运行在单线程上,使得它可以支持成千上万的并发连接。但缺点是单线程不支持应用的垂直扩展。(但是Cloud 66支持)

  • 事件循环: Node.js用事件循环来代替进程或线程的扩展。服务端在回调定义结束之后自动进入事件循环机制。

  • 社区: Node.js正在被一个强大的、多样的、活跃的和迅速扩大的由狂热开发者组成的社区支持。开发者们通过Git来分享新特性、对新特性提问题和上传代码包来修复bug。

开发者们喜欢nodejs的原因在于,它结合了脚本语言的简单易学和UNIX 网络编程的强大功能,因为它有很多给力的框架可供选择

Node框架

我曾经举例过每一个Cloud 66支持的Node框架的介绍。从用户的角度,我相对照了一下之前的和11月30号Github上的stars数和conributors数。数据表明相对之前有所增加。

根据应用的功能我将Node框架分类成:API,全栈,Sinatra-like

API

下面的框架具是由API驱动的,是服务器理想部署的框架。

#1 Actionhero

这是一个快速的,轻量级的,具有多重传输服务API的Node.js框架,也是一个容易于使用工具箱来创建一个可重用可扩展API的理想框架。

Actionhero不仅支持高层的传输(比如通过JSON来传输),也能在低层上工作(比如通过TCP协议通信)。它是clusty-ready的,而且内置任务后台和不停机发布功能,它的传输就像CDN那样不需要运行Apache或者Nginx。

Actionhero:

Github stars:1,499

Github contributors: 67

#2 Loopback

这是一个由IBM发布的高度可扩展的API框架,它可以通过很少的代码来创建一个动态的端对端的REST APIs。它是一个可以让开发者轻易地创建Express框架API的工具。

Loopback API可以连接不同的设备,并整合了安卓、iOS和AngularJS SDKs来创造一个客户app。对于绘图的应用,Loopback使用StrongLoop Arc。

Loopback:

Github stars: 7,817

Github contributors: 80

#3 Restify

这是一个构建REST APIs的轻量级框架,是一个通过API来发关数据的服务端框架。Restify主要通过应用调试方面的工作来优化你的服务。

Restify:

Github stars: 5,966

Github contributors: 142

#4 Socket.io

这个框架意于创建一个实时的web应用(比如: 文档协作和数据交换传输)。Socket.io是通过事件来驱动网页端和服务器端之间的通信的。它就像是一个在浏览器里的客户端库,它也有在Node.js上运行的服务端库。 Socker.io:

Github stars: 28,887

Github contributors: 123

Full Stack

这个框架为开发者提供了全栈开发的支持。它包含了应用开发中的每一个阶段,整合了从中间件和UI到APIs和数据库等资源。

#5 Meteor, 最新加入到Cloud 66

这是一个可以不断地从服务器同步数据的MVC框架,用它可以建造实时web应用。Meteor内置了一套预写入、独立的模块来帮助开发者开发应用。

通过Meteor开发的应用可以运行在OS X、Windows和Linux操作系统上。是一个全平台的框架。

Meteor:

Github stars: 36,081

Github contributors: 321

#6 Keystone

这是一个建立数据库驱动的web应用程序和APIs的理想框架。Express, MongoDB和Mongooes是这个Node框架的主要组成部分。

Keystone:

Github stars: 8,352

Github contributors: 181

Sinatra Like

Sinatra这个轻量级的框架是Ruby中的一个功能性镜像。

#7 Express

Express是一个快速的、友好的、极简的、高效的路由中间件框架。它是Node中最必须的框架之一,也是开发PC、手机应用和APIs的理想框架。

Express:

Github stars: 28,683

Github contributors: 192

你可以阅读: ”怎么用Node, Express4和Docker发布RESTful APIs“

#8 Koa

Koa是一个少回调、轻量的中间件框架,你可以用它来写web应用和REST APIs,你也可以用它来为你的应用添加新的特性和在开发的时候随意地自定义所有东西。Koa支持ES6语法和最新的JavaScript版本。

Koa对于初学者来说不是一个最好的框架,因为它自己的语法增加了初学才另外的学习成本。

Koa:

Github stars: 12,779

Github contributors: 91

#9 Hapi

Hapi是一个快速开发和建立API测试的一个理想框架,不过你也可以用它来开发整个网站。Hapi有许多优秀的插件,这使得它可以让开发者不影响其它代码的情况下进行局部开发。Hapi是一个对团队项目很友好的框架。

正因为Hapi是由Walmart的开发者们开发的,它提供了企业级的功能。

Hapi:

Github stars: 7,015

Github contributors: 151

相关文章