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应用程序的快速开发.下面是一 ...
随机推荐
- HMM 自学教程(四)隐马尔科夫模型
本系列文章摘自 52nlp(我爱自然语言处理: http://www.52nlp.cn/),原文链接在 HMM 学习最佳范例,这是针对 国外网站上一个 HMM 教程 的翻译,作者功底很深,翻译得很精彩 ...
- "浅谈Android"第一篇:Android系统简介
近来,看了一本书,名字叫做<第一行代码>,是CSDN一名博主写的,一本Android入门级的书,比较适合新手.看了书之后,有感而发,想来进行Android开发已经有一年多了,但欠缺系统化的 ...
- C#语法糖之 cache操作类 asp.net
因为考虑到我下面我将写session cookies 等 操作类 ,与cache具有共性. 所以都统一继承了IHttpStorageObject abstract class 来保函数风格的统一 , ...
- tips null和undefined的区别
tips null和undefined的区别 1.undefined类型 undefined类型只有一个值,即特殊的undefined.在使用var声明变量但未对其加以初始化时,这个变量的值就是und ...
- 使用Spark分析拉勾网招聘信息(一):准备工作
本系列专属github地址:https://github.com/ios122/spark_lagou 前言 我觉得如果动笔,就应该努力地把要说的东西表达清楚.今后一段时间,尝试下系列博客文章.简单说 ...
- QCustomplot使用分享(二) 源码解读
一.头文件概述 从这篇文章开始,我们将正式的进入到QCustomPlot的实践学习中来,首先我们先来学习下QCustomPlot的类图,如果下载了QCustomPlot源码的同学可以自己去QCusto ...
- 一篇通俗易懂的讲解OpenGL ES的文章
电脑或者手机上做图像处理有很多方式,但是目前为止最高效的方法是有效地使用图形处理单元,或者叫 GPU.你的手机包含两个不同的处理单元,CPU 和 GPU.CPU 是个多面手,并且不得不处理所有的事情, ...
- 译:Datetime类型的扩展
译文出处:http://www.codeproject.com/Articles/870939/Datetime-Extensions 本文主要针对System.DateTime类型的一系列扩展.包括 ...
- 面向对象的Javascript(4):重载
在小项目中对于JavaScript使用,只要写几个function就行了.但在大型项目中,尤其是在开发追求 良好的用户体验的网站中,如SNS,就会 用到大量的JavaScrpt,有时JavaScrip ...
- 【C#】线程之Task
Task开启线程 有两种启动方式: 1.构造创建线程,然后启动 var taskForAction = new Task(() => { //do something }); taskForAc ...