Node.js应用程序SyntaxError:意外的保留字'class'

时间:2016-11-23 18:43:58

标签: node.js node-modules

我是Node.js的新手,刚开始使用Eclipse和Nodeclipse插件构建应用程序。当我使用Node core.js运行应用程序时它工作正常,但使用Eclipse它会向我显示以下错误:

/home/sarojs/projects/Core/security.js:3
  class Security {
  ^^^^^
SyntaxError: Unexpected reserved word
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)
at Module.require (module.js:365:17)
at require (module.js:384:17)
at Object.<anonymous> (/home/sarojs/projects/node/liveprojects/ecurvInc/Core/core.js:12:16)
at Module._compile (module.js:460:26)
at Object.Module._extensions..js (module.js:478:10)

我无法弄清楚这里有什么问题。我搜索了解决方案并找到了一些资源Unexpected reserved word,但我不明白如何将它合并到Eclipse中。

我的package.json看起来像这样:

{
 "dependencies": {
 "bluebird": "^3.4.0",
 "body-parser": "~1.8.1",
 "cookie-parser": "~1.3.3",
 "cors": "^2.8.1",
 "debug": "~2.0.0",
 "express": "~4.9.0",
 "express-handlebars": "^3.0.0",
 "express-session": "^1.13.0",
 "mysql": "^2.11.1",
 "passport": "^0.3.2",
 "passport-local": "^1.0.0"
 }
}
  • Node.js版本:4.4.6
  • IDE:带有Nodeclipse插件的Eclipse Mars 1

任何帮助都将受到高度赞赏。

3 个答案:

答案 0 :(得分:4)

class声明是ES6功能。 ES6在节点4.4.6中具有are hardly supported。尝试updating并再次运行npm install

另见https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Statements/class

答案 1 :(得分:3)

我抓了这么多个小时后解决了这个问题。

正如@Tom M所说,类声明是一个ES6特性,之前我有节点4.2.6但是当我将它更新到v4.6.2时,错误就消失了。

我从here下载了二进制文件并通过手动将文件解压缩到我的/ usr / local目录来安装该节点,然后运行

 npm install

您可以找到如何手动安装节点二进制文件here

答案 2 :(得分:2)

最近在ECMAScript 6中引入了JavaScript类。它们是先前原型继承模型的语法糖。

您可以检查哪个版本的节点支持node.green

上的类语法

您可以看到v4.6.2支持类概念,因此请尝试将其更新至至少4.6.2。但此版本不支持所有ES6功能。