在Node.js中,一些模块导出对象
var Constructor = function() {};
exports.MyObject = new Constructor();
// or
module.exports = new Constructor();
和一些模块导出函数:
var Constructor = function() {};
exports.MyConstructor = Constructor;
// or
module.exports = Constructor;
何时应该导出对象以及何时导出函数?
答案 0 :(得分:0)
一个考虑因素可能是模块模块的caching功能。来自文档;我的重点:
模块在首次加载后进行缓存。这意味着 (除此之外)每次调用require('foo')都会得到 完全相同的对象返回,如果它将解析为相同 文件。
多次调用require('foo')可能不会导致模块代码 多次执行。这是一个重要的特征。用它, 可以返回“部分完成”的对象,从而允许传递 即使它们会导致循环,也要加载依赖项。
如果您想让模块多次执行代码,请导出 一个函数,并调用该函数。