我在试图运行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);
});如果你还需要我帮忙解决这个问题,请告诉我。
发布于 2015-06-30 14:59:41
它在生成器function*语法上失败了。以下是几个绕过这一问题的选择:
node --harmony path/to/mocha。发布于 2015-06-30 15:03:03
这是因为function *在application.js,而不是您的节点文件。function *是ES6 (ES2015) http://wiki.ecmascript.org/doku.php?id=harmony%3agenerators中的一个生成器函数。这是javascript的下一个版本,还不是所有版本的浏览器/node.js都支持它。
这里有几个选项,您可以将该文件传输回ES5,以便浏览器/node.js能够理解它。您还可以使用类似于巴贝尔的东西将代码传输回ES5。您还可以在节点中设置--harmony标志,这将允许节点理解和使用生成器函数。
https://stackoverflow.com/questions/31141443
复制相似问题