我在模块中定义了一个类:

"use strict";

var AspectTypeModule = function() {};
module.exports = AspectTypeModule;

var AspectType = class AspectType {
    // ...
};

module.export.AspectType = AspectType;

但是我收到以下错误消息:
TypeError: Cannot set property 'AspectType' of undefined
    at Object.<anonymous> (...\AspectType.js:30:26)
    at Module._compile (module.js:434:26)
    ....

我应该如何导出此类并在另一个模块中使用它?我看到了其他SO问题,但是当我尝试实现其解决方案时却收到其他错误消息。

最佳答案

如果在节点4中使用ES6,则没有转译器就无法使用ES6模块语法,但是CommonJS模块(节点的标准模块)的工作原理相同。

module.export.AspectType

应该
module.exports.AspectType

因此出现错误消息“无法设置未定义的属性'AspectType'”,因为module.export === undefined

另外,对于
var AspectType = class AspectType {
    // ...
};

你能写吗
class AspectType {
    // ...
}

并获得基本相同的行为。

08-07 14:04