意外的令牌=

时间:2015-11-09 04:05:17

标签: node.js

我不确定在Node.js中可能导致此错误的原因,因为我之前从未见过它,也无法在线找到其他问题。

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

4 个答案:

答案 0 :(得分:8)

node.js 5.0尚不支持所有ES6功能。特别是,它还不支持默认参数。

所以这一行:

constructor(options = {}) {

是导致=分配错误的原因。

请参阅this table了解node.js 5.0中支持的功能。

您可以使用旧式方法替换默认参数分配:

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

答案 1 :(得分:0)

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

你应该删除它:

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

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

根据this link --harmony无法提供帮助,此功能根本没有在node5.0中实现。

答案 2 :(得分:0)

我使用的是Node v5.7.0,可以使用此选项启用默认参数: --harmony默认参数

答案 3 :(得分:-1)

错误发生在article.js的第3行。