意外的令牌=

我不确定什么可能会导致Node.js中的这个错误,因为我从来没有见过它,无法在网上find另一个问题。

Message: Unexpected token = Stack: SyntaxError: Unexpected token = at exports.runInThisContext (vm.js:53:16) at Module._compile (module.js:404:25) at Object.Module._extensions..js (module.js:432:10) at Module.load (module.js:356:32) at Function.Module._load (module.js:311:12) at Module.require (module.js:366:17) at require (module.js:385:17) at Object.<anonymous> (/Projects/api/test/integration/models/article.js:3:15) 

导致错误的文件有以下内容:

 'use strict'; var Article = require('../../../models/article') 

为什么在世界上会导致一个错误?

编辑1 – 添加所需的article.js:

 'use strict'; class ArticleModel { constructor(options = {}) { this.options = options } } module.exports = ArticleModel 

node.js 5.0还不支持所有的ES6function。 特别是,它还不支持默认参数。

所以这一行:

 constructor(options = {}) { 

是什么导致=赋值错误。

请参阅此表以了解node.js 5.0中支持哪些function。


你可以用老式的方法replace默认的参数赋值:

 constructor(options) { this.options = options || {}; } 

我认为,你当前的Node.js发行版不支持默认的参数值。

你应该删除它:

  constructor(options) { this.options = options || {}; } 

或者,尝试使用--harmony运行时标志。


根据这个链接 --harmony不能帮助,这个function在node5.0根本就没有实现。

我正在使用Node v5.7.0,并且可以使用此选项启用默认参数:–harmony-default-parameters

该错误是在article.js的第三行。