[英]node.js / ES6 / class creation : SyntaxError: Unexpected reserved word
我尝试在我的node.js / express app上创建一个类。
它适用于基本的js / prototype模式,例如:
function MyClass() {
/* constructor code */
};
MyClass.prototype.myMethod = function() {
/* method code */
};
module.exports = MyClass;
但我想使用class,constructor,extends,...关键字。
我试过了:
class MyClass {
constructor() {
/* constructor code */
}
myMethod() {
/* method code */
}
}
但它不起作用,错误是:
class MyClass {
^^^^^
SyntaxError: Unexpected reserved word
我的命令行用于启动具有所有和声选项的应用程序:
node `node --v8-options | grep harmony | cut -d ' ' -f | xargs` my-app.js
想要正确启动我的应用程序的想法吗?
您需要更新版本的nodejs。 4.4.x中支持 class
关键字,但我个人认为它在v4.2.6中有效。 (不完全确定哪个版本的v8发布了它,这将告诉节点版本。)
我有这个问题。
这是因为我下载了nodejs的源代码而不是在我的Ubuntu上构建/编译它。 ./configure
然后make
和make install
。
出于某种原因,ES6保留的class
如class
和extends
都抛出了SyntaxError:意外的保留字,即使使用--harmony
flag也是如此。
我通过下载linux的nodejs二进制文件( https://nodejs.org/download/ )解决了这个问题。
现在即使没有--harmony
标志,也可以扩展工作。
我相信这个问题来自我的构建/编译过程。 由于某种原因,未正确构建或配置ES6添加。
据我所知,二进制文件已经完全正确地为linux构建,因此正确添加和配置了ES6。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.