module.exports 只是将函数绑定到一个对象吗?

does module.exports simply binds function to an object?

我试图将几个函数绑定到我的 module.exports 对象。 我是这样做的:

module.exports = {func1,func2,func3}

但是当我看到别人这样做的时候,他是这样做的:


 module.exports.func1= func1;
 module.exports.func2 = func2 ;
 module.exports.func3 = func3;

我开始调查,尝试记录两种方式并得到相同的对象

exports: {
    bellBoy: [Function: func1],
    bellBoy2: [Function: func2],
    bellBoy3: [Function: func3]
  }

有区别吗? 两种方式都可以,还是后台发生了一些不同的事情?

两个几乎一样。 当你使用它时。

module.exports = {func1,func2,func3}

你必须这样导入。

const {funct1,funct2,funct3} = require('./path/to/file');

如果你这样使用

 module.exports.func4= func1;
 module.exports.func5 = func2 ;
 module.exports.func6 = func3;

你必须这样导入:

const {funct4,funct5,funct6} = require('./path/to/file');

两者相同,但当您使用第一种方法时,无论在何处调用函数,都必须使用相同的名称。
但是使用第二种方法你可以使用不同的名称。
希望你明白了!