我可以不使用--harmony标签运行Koa吗?

5
自从iojs合并到Node之后,我认为可以在不使用--harmony标签的情况下运行koajs(因为它支持es6中的生成器)。 因此,在我的server.js文件中,我有以下内容:
var koa = require('koa');
var app = koa();

app.use(function *(){
  this.body = 'Hello World';
});

app.listen(3000);

我的package.json文件中有"koa": "^1.1.2"

我运行node server.js,并获得:

app.use(function *(){
                 ^
SyntaxError: Unexpected token *

有什么想法为什么会抱怨?我是否仍需要使用--harmony标签吗?
谢谢!

我还注意到另一件事,他们的网站自 Node 的 v0.11 版以来就没有更新过了。有人知道它是否已被放弃了吗? :/ - pourmesomecode
1个回答

1

我很惊讶在网上没有更多关于这个问题的提问。不过,我已经成功地运行它而没有使用 --harmony 标志。

目前他们正在开发支持 ES6 的 V2.* 版本。你可以在他们的 git 仓库中找到它,在 V2 分支下 https://github.com/koajs/koa

所以你需要执行 npm install koa@next -save 来获取最新版本,目前是 "koa": "^2.0.0-alpha.3"

为了确保它正常工作,你可以快速将这个代码放入一个 index.js 文件中,然后运行 node index.js

const Koa = require('koa');
const app = new Koa();

// logger

app.use((ctx, next) => {
  const start = new Date;
  return next().then(() => {
    const ms = new Date - start;
    console.log(`${ctx.method} ${ctx.url} - ${ms}ms`);
  });
});

// response

app.use(ctx => {
  ctx.body = 'Hello World';
});

app.listen(3000);

V2稳定后将合并到主分支中,只需运行npm install koa即可。但对于我想要的,npm install koa@next -save也可以正常工作 :)


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接