我在尝试运行 Koa 时遇到和谐错误。
这是我运行摩卡测试后的错误,最后出现此错误:
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*
语法失败。以下是解决此问题的一些选项:
- 如果您使用的是 Node 0.11 或更高版本,则需要通过 Harmony 运行来启用 es6 生成器。通常我会这样做:
node --harmony path/to/mocha
。 - 或者,您可以升级到 io.js,它支持生成器和其他一些 es6 功能,而无需运行时标志。
- 另一种可能性是使用 babel 转译器运行测试。 babel website有详细的说明如何做到这一点(在该页面上查找“mocha”)。如果您仍在使用 Node 0.10 或更低版本(具有零生成器支持),这可能是您的最佳选择。
关于node.js - 意外的代币 * Koa.js,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31141443/