尝试运行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);
});
如果您需要我提供任何其他帮助以解决此问题,请与我们联系。
答案 0 :(得分:3)
它失败了生成器function*
语法。以下是一些解决此问题的方法:
node --harmony path/to/mocha
。答案 1 :(得分:0)
这是因为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
标志,以便节点了解并利用生成器功能。