我用nvm安装了各种node.js版本并尝试了-harmony标志,以使生成器函数与yield关键字一起工作,但是当服务器启动时我遇到了各种错误。其中一个在下面:
/home/ubuntu/workspace/node_modules/hapi/node_modules/joi/lib/object.js:310
throw castErr;
^
TypeError: Cannot read property '_items' of undefined
at /home/ubuntu/workspace/node_modules/hapi/node_modules/topo/lib/index.js:39:22
at Array.forEach (native)
at internals.Topo.add (/home/ubuntu/workspace/node_modules/hapi/node_modules/topo/lib/index.js:36:24)
at internals.Object.keys (/home/ubuntu/workspace/node_modules/hapi/node_modules/joi/lib/object.js:301:18)
at internals.root.root.object (/home/ubuntu/workspace/node_modules/hapi/node_modules/joi/lib/index.js:71:72)
at Object.<anonymous> (/home/ubuntu/workspace/node_modules/hapi/node_modules/catbox/lib/policy.js:255:24)
at Module._compile (module.js:460:26)
at Object.Module._extensions..js (module.js:478:10)
at Module.load (module.js:355:32)
at Function.Module._load (module.js:310:12)
使用yield关键字需要做些什么特别的事情吗?
更新:我将nodejs更新为5.4.1,错误消失了。但我不能使用yield函数。
这是一段代码:
var nodes = yield Db.node.find({ type: 'root' });
return reply.success(nodes);
这是我得到的错误:
var nodes = yield Db.node.find({ type: 'root' });
^^
SyntaxError: Unexpected identifier