Node.js中的module.exports与export

我在Node.js模块中找到了以下合同:

module.exports = exports = nano = function database_module(cfg) {...}

我不知道什么之间的不同module.exportsexports为什么都被用在这里。

回答:

设置module.exports允许在database_module时像函数一样调用函数required。简单地设置exports将不允许导出函数,因为节点导出了对象module.exports引用。以下代码不允许用户调用该函数。

module.js

exports = nano = function database_module(cfg) {return;}

module.exports = exports = nano = function database_module(cfg) {return;}

var func = require('./module.js');

// the following line will **work** with module.exports

func();

基本上, 不会导出exports当前引用的对象,而是导出exports最初引用的对象的属性。尽管

确实导出了对象module.exports引用,但允许您像调用函数一样调用它。


第二个最不重要的原因

他们设置了两者module.exportsexports确保exports未引用先前的导出对象。通过将两者都设置exports为简写,可以避免以后出现潜在的错误。

使用exports.prop = true 而不是module.exports.prop = true保存字符并避免混淆。

以上是 Node.js中的module.exports与export 的全部内容, 来源链接: utcz.com/qa/399191.html

回到顶部