我不确定在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
答案 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行。