Node.js Web框架收集
原文地址: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框架收集的更多相关文章
- Koa – 更加强大的下一代 Node.js Web 框架
Koa 是 Express 的开发团队设计的下一代 Web 框架,其目的是为 Web 应用程序提供更小,更具表现力,更坚实的基础.Koa 没有核捆绑任何中间件,并提供了一套优雅的方法,使服务器端开 ...
- 强大的 Node.js Web 框架 - Daze.js
去年年初对 Node.js 比较感兴趣,也用了很多 Node.js 的框架,但是开发体验不是特别好,我之前也是后端转前端,然后再接触 Node.js ,所以用过挺多的服务端框架,相对js而言,设计一款 ...
- 全端开发必备!10个最好的 Node.js MVC 框架
Node.js 是最流行的 JavaScript 服务端平台,它允许建立可扩展的 Web 应用程序.Node.js 包含不同类型的框架,如 MVC 框架.全栈框架.REST API 以及大量的服 ...
- node.js Web应用框架Express.js(一)
什么是Express.js Express 是一个简洁而灵活的 node.js Web应用框架, 提供一系列强大特性帮助你创建各种Web应用,提供丰富的HTTP工具以及来自Connect框架的中间件随 ...
- node.js Web应用框架Express入门指南
node.js Web应用框架Express入门指南 作者: 字体:[增加 减小] 类型:转载 时间:2014-05-28 我要评论 这篇文章主要介绍了node.js Web应用框架Express入门 ...
- 44.Node.js Express 框架--web框架
转自:http://www.runoob.com/nodejs/nodejs-express-framework.html Express 简介 Express 是一个简洁而灵活的 node.js W ...
- Node.js Express 框架
Node.js Express 框架 Express 简介 Express 是一个简洁而灵活的 node.js Web应用框架, 提供了一系列强大特性帮助你创建各种 Web 应用,和丰富的 HTTP ...
- 【360开源】thinkjs:基于Promise的Node.js MVC框架 (转)
thinkjs是360奇舞团开源的一款Node.js MVC框架,该框架底层基于Promise来实现,很好的解决了Node.js里异步回调的问题.360奇舞团(奇虎75Team),是奇虎360公司We ...
- Node.js Express框架
Express 介绍 Express是一个最小的,灵活的Node.js Web应用程序框架,它提供了一套强大的功能来开发Web和移动应用程序. 它有助于基于Node Web应用程序的快速开发.下面是一 ...
随机推荐
- 最近读cocoaui源代码有感
上半年为了做一个ios的应用,引入了cocoaui库,主要是用来布局ios界面,发现简化了不少代码和工作量.因为在写第一个ios应用的时候,用的代码布局,在适配4s和6的机型时候,几乎被搞死,大量的约 ...
- ASP.NET WebForm与MVC优缺点
发表于我的个人网站中,请点击阅读!
- 使用Eclipse Installer安装Eclipse
由于一些原因,需要重新安装Eclipse,登陆到Eclipse官网下载Eclipse时发现社区又推出了Eclipse Installer.所以就下下来尝尝鲜. 刚开始确实有些选项不太明白,不过现在挺喜 ...
- SQL查询语言练习
USE master GO IF EXISTS (SELECT * FROM sysdatabases WHERE name='MyStudentInfoManage') DROP DATABASE ...
- SQL Server 多条记录的某个字段拼接
USE [FM_Dev] GO /****** 对象: UserDefinedFunction [dbo].[GetClassNameByStudentCode] 脚本日期: 05/23/2014 1 ...
- 使用事务操作SQLite数据批量插入,提高数据批量写入速度,源码讲解
SQLite数据库作为一般单机版软件的数据库,是非常优秀的,我目前单机版的软件产品线基本上全部替换Access作为优选的数据库了,在开发过程中,有时候需要批量写入数据的情况,发现传统的插入数据模式非常 ...
- 微信公众平台入门开发教程.Net(C#)框架
一.序言 一直在想第一次写博客,应该写点什么好?正好最近在研究微信公众平台开发,索性就记录下,分享下自己的心得,也分享下本人简单模仿asp.net运行机制所写的通用的微信公众平台开发.Net(c#)框 ...
- [CLR via C#]16. 数组
数组是允许将多个数据项当作一个集合来处理的机制.CLR支持一维数组.多维数组和交错数据(即由数组构成的数组).所有数组类型都隐式地从System.Array抽象类派生,后者又派生自System.Obj ...
- knockout.js的简介和简单使用
1.knockout简介knockout是一个轻量级的UI类库,通过MVVM模式使JavaScript前端UI简单化knockout有四大重要概念:1)声明式绑定:使用简明移读的语法很容易地将模型(m ...
- 在windows下配置Eclipse + go环境
http://blog.csdn.net/hengyunabc/article/details/7371446 本文章地址:http://blog.csdn.net/hengyunabc/articl ...