Node.js ES6“导出类A”是否等同于“module.exports=A”?

Node.js ES6“导出类A”是否等同于“module.exports=A”?,node.js,ecmascript-6,Node.js,Ecmascript 6,当我看到Babel编译的代码时,它们似乎并不等价。 实际上,前者转换为exports.A,这并不等同于module.exports=A(可能是module.exports.A=A?) 那么是否存在ES6样式的module.export=?还是语法仍然保留在ES6中?或者ES6中不再推荐这种语法?您可以使用 export default class A { } 或 它将作为 exports["default"] = A; module.exports = exports["default"];

当我看到Babel编译的代码时,它们似乎并不等价。 实际上,前者转换为
exports.A
,这并不等同于
module.exports=A
(可能是
module.exports.A=A
?)

那么是否存在ES6样式的
module.export=
?还是语法仍然保留在ES6中?或者ES6中不再推荐这种语法?

您可以使用

export default class A {

}

它将作为

exports["default"] = A;
module.exports = exports["default"];
在互操作部分有一个解释

为了鼓励使用CommonJS和ES6模块,在导出没有其他导出的默认导出时,
模块。除了
导出[“默认”]
之外,还将设置导出


babel6不受支持
将默认A
导出到
模块。导出=A


您应该添加一个您可以在节点v6中使用以下内容:

"use strict" 

class ClassName {
 // class code
}

module.exports = ClassName
将上述文件另存为ClassName.js

要将其导入另一个文件Test.js,请执行以下操作:

"use strict"
var ClassName= require('./ClassName.js');
var obj = new ClassName( Vars . . . );
有关更多信息:

"use strict"
var ClassName= require('./ClassName.js');
var obj = new ClassName( Vars . . . );