在Node.js中,某些模块会导出对象
var Constructor = function() {};
exports.MyObject = new Constructor();
// or
module.exports = new Constructor();还有一些模块会导出函数:
var Constructor = function() {};
exports.MyConstructor = Constructor;
// or
module.exports = Constructor;什么时候应该导出对象,什么时候应该导出函数?
发布于 2013-06-29 03:39:37
一个考虑因素可能是模块模块的caching特性。来自文档;我的重点是:
模块在第一次加载后进行缓存。这意味着(尤其是)每次对require('foo')的调用都会得到完全相同的对象返回的,如果它会解析到相同的文件的话。
对require('foo')的多次调用可能不会导致模块代码多次执行。这是一个重要的特性。有了它,可以返回“部分完成”的对象,从而允许加载传递依赖,即使它们会导致循环。
如果您想让一个模块多次执行代码,然后导出一个函数并调用该函数,则为。
https://stackoverflow.com/questions/17372398
复制相似问题