由于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
代码吗?
谢谢!
答案 0 :(得分:1)
我很惊讶我没有在网上遇到更多有关此问题的问题。无论如何,我已经让它在没有--harmony
标志的情况下工作了。
目前他们正致力于V2.*
,并获得ES6支持。您可以在V2
分支https://github.com/koajs/koa下的git仓库中找到它。
因此,您需要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
工作正常:)