原文地址: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. Appium移动自动化测试(二)--安装Android开发环境

    继续Appium环境的搭建. 第二节  安装Android开发环境 如果你的环境是MAC那么可以直接跳过这一节.就像我们在用Selenium进行web自动化测试的时候一样,我们需要一个浏览器来执行测试 ...

  2. ELK+FileBeat+Log4Net搭建日志系统

    ELK+FileBeat+Log4Net搭建日志系统 来源:https://www.zybuluo.com/muyanfeixiang/note/608470 标签(空格分隔): ELK Log4Ne ...

  3. python常用数据类型内置方法介绍

    熟练掌握python常用数据类型内置方法是每个初学者必须具备的内功. 下面介绍了python常用的集中数据类型及其方法,点开源代码,其中对主要方法都进行了中文注释. 一.整型 a = 100 a.xx ...

  4. Dell_r720服务器部署

    没错,就是它-->                             前言:本来是写在word文档上作为笔记的,想想觉得不能浪费我在机房被狂虐两天总结出来的这点小经验, 还是分享一下吧,说 ...

  5. Dancing Link --- 模板题 HUST 1017 - Exact cover

    1017 - Exact cover Problem's Link:   http://acm.hust.edu.cn/problem/show/1017 Mean: 给定一个由0-1组成的矩阵,是否 ...

  6. Ubuntu系统操作快捷键

    Ubuntu操作基本快捷键* 打开主菜单 = Alt + F1* 运行 = Alt + F2* 显示桌面 = Ctrl + Alt + d* 最小化当前窗口 = Alt + F9* 最大化当前窗口 = ...

  7. JS+JQ手风琴效果

    最新在学习JS写一些实用的小玩意——手风琴 CSS样式: <style type="text/css"> * { margin: 0px; border: 0px; p ...

  8. 泛函编程(11)-延后计算-lazy evaluation

    延后计算(lazy evaluation)是指将一个表达式的值计算向后拖延直到这个表达式真正被使用的时候.在讨论lazy-evaluation之前,先对泛函编程中比较特别的一个语言属性”计算时机“(s ...

  9. 浏览器-Tomcat服务器-请求与响应

    浏览器访问服务器,本质就是请求资源. 比如请求静态资源:index.html,我们在浏览器地址栏输入:www.a.com/index.html,浏览器为了支持HTTP协议,发送的数据必须符合HTTP协 ...

  10. Docker源码编译

    官方建议docker源码编译在docker容器内进行,因为官方提供的容器内已经继承了编译需要的环境,如果非要自己搭建编译环境也不是不可以,就是稍微有些繁琐.以下以1.8.2版本为例. 1.pull d ...