NodeJs 环境下 Koa 框架试验 之二
上回说到怎样将Koa这个web框架运行在NodeJs环境中呢?我们来将上次写的那个hello.js 内容改成如下:
1 var koa = require('koa'); 2 var app = koa(); 3 app.use(function *(){ 4 this.body = 'Hello World'; 5 }); 6 app.listen(8888);
注意:现在你直接在命令行中运行:node hello.js 是会报错的。错误一般如下:
function *respond(next){
^
SyntaxError: Unexpected token *
at Module._compile (module.js:439:25)
at Object.Module._extensions..js (module.js:474:10)
at Module.load (module.js:356:32)
at Function.Module._load (module.js:312:12)
at Module.require (module.js:364:17)
at require (module.js:380:17)
at Object. (C:\Program Files\nodejs\node_modules\koa\index.js:2:1
8)
at Module._compile (module.js:456:26)
at Object.Module._extensions..js (module.js:474:10)
at Module.load (module.js:356:32)
这是因为 app.use(function *(){ 语句中有一个 * ,这种方式被称为generator functions ,一般写作function *(){...} 的形式,在此类function 中可以支持ES6的一种yield概念(什么?你不知道什么是yield...%$#@%....呵呵,好吧,其实我也不知道。不过我相信,我们后面会遇到它的,请耐心一点。)。于是我们需要让这种新型的javascript方法可以编译通过,就需要在运行node 命令的时候加上一个harmony参数(嗯,你知道什么是河蟹吧。呵呵,对了。harmony的英文意思就是和谐,就是为了让编译器不仅可以接纳旧的javascript语法也可以接纳新时代的语法。)语句如下:
node --harmony hello.js
好了,你已经看出来了。Koa 在 原生态的NodeJs的基础上进行了一番进化。从程序员的角度来看,首先变得更加简洁、易读了;然后,其实是最重要的一个进化:“使用 koa 编写 web 应用,通过组合不同的 generator,可以免除重复繁琐的回调函数嵌套,并极大地提升常用错误处理效率。Koa 不在内核方法中绑定任何中间件,它仅仅提供了一个轻量优雅的函数库,使得编写 Web 应用变得得心应手。 ”
下一回我们就尝试着用这个东东做一个web应用吧。
哦,提醒一下,最好使用最新的NodeJs v0.11.4。在命令行下查一下你的版本就可以知道了。
NodeJs v0.11.4下载地址:http://nodejs.org/docs/v0.11.4/download/

浙公网安备 33010602011771号