原文地址:http://geek.csdn.net/news/detail/4020

框架列表: http://nodeframework.com/

与其他很多语言一样,Node.js也有很多Web框架可以选择,以至于有一个专门的网站/GitHub项目收集这些框架:http://nodeframework.com/

其中比较流行的MVC框架应该是Sinatra风格的Express(GitHub关注数是11571),和Rails风格的Getty。(参见StackOverflow)而从CNodejs中文社区的话题来看,国内Express明显要更受欢迎。中间件里出自Sencha的Connect比较热门一些。事实上Express就是基于Connect的。

现在Express的主要作者T.J. Holowaychuk等又发起了一个开源中间件项目Koa。从项目的FAQ来看,目的是通过生成器(借助co)减少回调,将Express中许多优秀特性移到中间件层次,让中间件的编写更轻松、不易犯错,为整个技术栈形成更稳固的基础,不针对最终的具体应用。它的功能与Connect类似,但不会取代Connect,你尽可以萝卜白菜各有所爱。Holowaychuk这么说是有权威性的,因为Connect现在的主要开发者也是他。

Koa的官方网站这样描述自己:

Koa is a new web framework designed by the team behind Express, which aims to be a smaller, more expressive, and more robust foundation for web applications and APIs. Through leveraging generators Koa allows you to ditch callbacks and greatly increase error-handling. Koa does not bundle any middleware within core, and provides an elegant suite of methods that make writing servers fast and enjoyable.

(Koa是由Express背后的团队开发的新Web框架,目的是为Web应用和Web API提供更小、更有表达力、更稳固的基础。通过生成器,Koa可以摆脱回调,极大地改进错误处理。Koa核心不绑定任何中间件,但提供了优雅的一组方法,可以快速和愉悦地编写服务器应用。)

Koa应用就是一个含有一组中间件生产函数的对象,遇到请求时以栈的方式组合和执行。这与Ruby里的Rack,Node.js之前的Connect等是类似的。但Koa在底层中间件层提供高层功能,因此改进了互操作性、稳固性,而且编写中间件也更轻松了。

Koa比较有特色的是Context,在一个对象里封装了Node.js的request和response。

示例应用是这样的:

var koa = require('koa');

var app = koa();

app.use(function *(){

this.body = 'Hello World';

});

app.listen(3000);

既然出自传奇人物T.J. Holowaychuk之手,Koa当然值得足够重视。因为他是Node.js社区最活跃和高产的成员之一。看看他的GitHub页面你会惊叹,怎么会有人如此高产!Express、Jade、Mocha、Component、Connect等Node.js多个重量级项目(关注数均是3000以上),CSS方面的Rework、Stylus,还有一个UIkit,用C实现的Luna语言,他都是创始人或者提交最多的贡献者,而且往往遥遥领先。他涉足的GitHub项目超过300,而过去一年中GitHub总贡献数4700多!

难怪Quora上对此有专门的讨论“T.J. Holowaychuk怎么能这么恐怖地高效?”。回答者里有人开玩笑地说他肯定像布尔巴基那样其实是一群人。还有人指出,他录制的Webcast里,打字速度那个快啊……另一个讨论中,有人打趣说他肯定不怎么睡觉,另一个人说他其实一直在睡,只不过我们都是他梦中世界的产物。而他本人则说,自己其实很喜欢睡觉,而且起床很困难……

此外,他与Node.js现在的负责人Isaac Schlueter年初关于组件的一番争论,也引起广泛关注

有意思的是,这位编程狂人居然是设计出身(下图是他的数码绘画作品之一,花了2个半小时,大家感受一下),然后接触到Flash,开始编写一些脚本(应该是写ActionScript吧)。某次接了一个设计活儿之后,他决定全部自己搞定,从此开始编程。至于怎么学会编程的,他说没有什么特别的,没有看书,也没有去学校,只是读别人的代码,任何思考怎么回事儿。

当然啦,编程高手里半路出家的很多,搞出Rails的DHH最开始是做游戏网站的网络编辑,JavaScript老道Douglas Crockford大学里学的是广播电视,Perl之父Larry Wall本科读的是化学、音乐和医学预科,最后拿了一个语言学的学位……

Holowaychuk本人网上似乎找不到正儿八经的简历。从散落各处的信息看,他住在加拿大Victoria,曾经在350designs、LearnBoost工作过,现在是集成分析平台Segment.io的员工。

对了,他也是Manning《Node.js in Action》的作者之一。

原文地址:http://geek.csdn.net/news/detail/4020

Node.js Web框架收集的更多相关文章

  1. Koa – 更加强大的下一代 Node.js Web 框架

    Koa 是 Express 的开发团队设计的下一代 Web 框架,其目的是为 Web 应用程序提供更小,更具表现力,更坚实的基础.Koa 没有核捆绑任何中间件,并提供了一​​套优雅的方法,使服务器端开 ...

  2. 强大的 Node.js Web 框架 - Daze.js

    去年年初对 Node.js 比较感兴趣,也用了很多 Node.js 的框架,但是开发体验不是特别好,我之前也是后端转前端,然后再接触 Node.js ,所以用过挺多的服务端框架,相对js而言,设计一款 ...

  3. 全端开发必备!10个最好的 Node.js MVC 框架

      Node.js 是最流行的 JavaScript 服务端平台,它允许建立可扩展的 Web 应用程序.Node.js 包含不同类型的框架,如 MVC 框架.全栈框架.REST API  以及大量的服 ...

  4. node.js Web应用框架Express.js(一)

    什么是Express.js Express 是一个简洁而灵活的 node.js Web应用框架, 提供一系列强大特性帮助你创建各种Web应用,提供丰富的HTTP工具以及来自Connect框架的中间件随 ...

  5. node.js Web应用框架Express入门指南

    node.js Web应用框架Express入门指南 作者: 字体:[增加 减小] 类型:转载 时间:2014-05-28 我要评论 这篇文章主要介绍了node.js Web应用框架Express入门 ...

  6. 44.Node.js Express 框架--web框架

    转自:http://www.runoob.com/nodejs/nodejs-express-framework.html Express 简介 Express 是一个简洁而灵活的 node.js W ...

  7. Node.js Express 框架

    Node.js Express 框架 Express 简介 Express 是一个简洁而灵活的 node.js Web应用框架, 提供了一系列强大特性帮助你创建各种 Web 应用,和丰富的 HTTP ...

  8. 【360开源】thinkjs:基于Promise的Node.js MVC框架 (转)

    thinkjs是360奇舞团开源的一款Node.js MVC框架,该框架底层基于Promise来实现,很好的解决了Node.js里异步回调的问题.360奇舞团(奇虎75Team),是奇虎360公司We ...

  9. Node.js Express框架

    Express 介绍 Express是一个最小的,灵活的Node.js Web应用程序框架,它提供了一套强大的功能来开发Web和移动应用程序. 它有助于基于Node Web应用程序的快速开发.下面是一 ...

随机推荐

  1. Ember Charts – 基于 Ember & D3 的图表库

    Ember Charts 是一个基于 Ember.js 和 D3.js 的图表库.它包括时间序列.柱状图.饼图.点图,很容易扩展和修改.这些图表组件代表图表交互性和演示的最佳实践,是高度可定制和可扩展 ...

  2. 微软IIS对http keep-alive的“霸道”处理

    大家都知道在IIS中有个HTTP keep-alive设置,见下图: 很多人可能和我们一样,以为这样设置后,IIS会就在发送响应内容时加上这个http header——Connection: keep ...

  3. 【Beta阶段】团队源代码管理

    0. 快速上手与理解 如果你的团队来了一个新队员,有一台全新的机器,你们是否有一个文档,只要设置了相应的权限,她就可以根据文档,从头开始搭建环境,并成功地把最新.最稳定版本的软件编译出来,并运行必要的 ...

  4. JS Date.Format

    // 对Date的扩展,将 Date 转化为指定格式的String // 月(M).日(d).小时(h).分(m).秒(s).季度(q) 可以用 1-2 个占位符, // 年(y)可以用 1-4 个占 ...

  5. SignalR+Asp.net高频率实时消息传递应用

    1.概述: 使用 ASP.NET 和SignalR 2高频率的实时消息功能.高频率消息在这种情况下就意味着更新发送以固定的速率; 本教程中创建的应用程序显示一个用户可以拖动的形状.在所有其他连接浏览器 ...

  6. PHP学习笔记:利用时间和mt_rand函数获取随机名字

    这个知识会在文件上传等场合用到,还没学面向对象,现在用函数形式呈献给各位,代码都做了备注,有不懂得可以在线提问. <?php /** * Created by PhpStorm. * User: ...

  7. SQL Server SQL语句执行顺序

    执行顺序: 1.FROM:对FROM子句中前两个表执行笛卡尔积生成虚拟表vt1 2.ON:对vt1表应用ON筛选器只有满足 为真的行才被插入vt2 3.OUTER(join):如果指定了 OUTER ...

  8. Android 手机卫士15--程序锁

    1.基本思路 ①.创建已加锁应用的数据库(字段:_id,packagename),如果应用已加锁,将加锁应用的包名维护到数据库中 ②.已加锁+未加锁 == 手机中所有应用(AppInfoProvide ...

  9. domain规划

    user-generated content 用户产生内容 和 admin-generated content 管理员产生内容,要区分开来,便于不同的图片压缩.备份.带宽.CDN.审核方案. 图片(j ...

  10. EF数据库初始化策略及种子数据的添加

    EF数据库初始化策略及种子数据的添加 CreateDatabaseIfNotExists 判断当前数据库连接字符串对应的数据库是否存在,若不存在则根据代码定义的model进行创建 DropCreate ...