意外令牌 * Koa.js
Unexpected Token * Koa.js
我在尝试 运行 Koa 时遇到和声错误。
这是我 运行 我的 mocha 测试后的错误,最后我得到了这个错误:
MacBook-Pro$ mocha test
...projects/search-api/node_modules/koa/lib/application.js:179
function *respond(next) {
^
SyntaxError: Unexpected token *
at exports.runInThisContext (vm.js:73:16)
at Module._compile (module.js:443:25)
at Object.Module._extensions..js (module.js:478:10)
at Module.load (module.js:355:32)
at Function.Module._load (module.js:310:12)
这是我的 server.js
'use strict';
var supertestKoa = require('supertest-koa-agent');
var app = module.exports = require('koa')(),
port = process.env.PORT || 3000;
supertestKoa(app);
app.listen(port, function(){
console.log('Koa app is listening on port' + port);
});
如果您需要我提供任何其他帮助来解决此问题,请告诉我。
生成器 function*
语法失败。这里有一些解决这个问题的方法:
- 如果您使用的是节点 0.11 或更高版本,则需要通过 运行 harmony 启用 es6 生成器。通常我会这样做:
node --harmony path/to/mocha
.
- 或者,您可以升级到 io.js,它支持生成器和其他一些 es6 功能,不需要运行时标志。
- 另一种可能性是 运行 使用 babel 转译器的测试。 babel website 有详细的操作说明(在该页面上查找 "mocha")。如果您仍在使用零生成器支持的节点 0.10 或更低版本,这可能是您最好的选择。
这是因为 application.js 中的 function *
不是您的节点文件。 function *
是 ES6 (ES2015) http://wiki.ecmascript.org/doku.php?id=harmony%3agenerators 中的生成器函数。这是 javascript 的下一个版本,并非所有 browsers/node.js 版本都支持。
这里有几个选项,您可以将该文件转译回 ES5,以便 browsers/node.js 可以理解它。您还可以使用 babel 之类的东西将您的代码转译回 ES5。您还可以在节点中设置 --harmony
标志,这将允许节点理解和使用生成器函数。
我在尝试 运行 Koa 时遇到和声错误。
这是我 运行 我的 mocha 测试后的错误,最后我得到了这个错误:
MacBook-Pro$ mocha test
...projects/search-api/node_modules/koa/lib/application.js:179
function *respond(next) {
^
SyntaxError: Unexpected token *
at exports.runInThisContext (vm.js:73:16)
at Module._compile (module.js:443:25)
at Object.Module._extensions..js (module.js:478:10)
at Module.load (module.js:355:32)
at Function.Module._load (module.js:310:12)
这是我的 server.js
'use strict';
var supertestKoa = require('supertest-koa-agent');
var app = module.exports = require('koa')(),
port = process.env.PORT || 3000;
supertestKoa(app);
app.listen(port, function(){
console.log('Koa app is listening on port' + port);
});
如果您需要我提供任何其他帮助来解决此问题,请告诉我。
生成器 function*
语法失败。这里有一些解决这个问题的方法:
- 如果您使用的是节点 0.11 或更高版本,则需要通过 运行 harmony 启用 es6 生成器。通常我会这样做:
node --harmony path/to/mocha
. - 或者,您可以升级到 io.js,它支持生成器和其他一些 es6 功能,不需要运行时标志。
- 另一种可能性是 运行 使用 babel 转译器的测试。 babel website 有详细的操作说明(在该页面上查找 "mocha")。如果您仍在使用零生成器支持的节点 0.10 或更低版本,这可能是您最好的选择。
这是因为 application.js 中的 function *
不是您的节点文件。 function *
是 ES6 (ES2015) http://wiki.ecmascript.org/doku.php?id=harmony%3agenerators 中的生成器函数。这是 javascript 的下一个版本,并非所有 browsers/node.js 版本都支持。
这里有几个选项,您可以将该文件转译回 ES5,以便 browsers/node.js 可以理解它。您还可以使用 babel 之类的东西将您的代码转译回 ES5。您还可以在节点中设置 --harmony
标志,这将允许节点理解和使用生成器函数。