在包含许多方法的1个module.export和模块中每个函数的module.export之间是否有不同的效率?
module.exports={
func1: function (req, res, next) {},
func2: function (req, res, next) {}
}
VS。
module.exports.func1 = function(){};
module.exports.funct2 = function(){};
我被告知调查两个选项之间是否存在差异。 比其他方式更好吗? 感谢。
答案 0 :(得分:0)
除了第一个将导出多个函数而第二个将逐个导出之外,上述两个之间没有区别。当你需要在另一个模块中时,它们都返回相同的对象。还有另一种导出模块的方法,称为单值导出,与您提到的不同。
module.exports = function () { ··· };
答案 1 :(得分:0)
实际上,没有区别。在CommonJS中,module.exports
只是另一个对象。这两个示例都导出与该对象上的键相同的函数。
唯一真正的区别在于,第一个示例完全重新分配module.exports
对象,而在第二个示例中,您只是为键分配值。在任何理智的用例中,这根本不重要。
在Node中,第二个示例可以缩写为
exports.func1 = function() {};
exports.func2 = function() {};
第一个表单可用于导出默认值和一些互补值,这实际上是一种相当常见的模式。请考虑以下事项:
function express() {}
function Router() {}
module.exports = express
module.exports.Router = Router
这将允许您通过
导入快递var express = require('express')
var Router = express.Router
虽然这个问题稍微偏离主题,但ES6类似物看起来像这样:
export const func1 = function() {}
export const func2 = function() {}
或
export {
func1,
func2
}