什么方法导出节点中的各种function?
所以我正在构build一个数据库层,并将您的标准CRUD(创build,读取,更新,删除)操作公开为函数。 我正在努力导出每个function。
方法1
function func1 () {} function func2 () {} module.exports = { "func1": func1, "func2": func2 }
方法2
var exporting; exporting.func1 = function() {}; exporting.func2 = function() {}; module.exports = exporting;
或者直接做:
module.exports.func1 = function() {}; module.exports.func2 = function() {};
方法3
export func1 = function() {} export func2 = function() {}
我确定它不会以任何方式破坏事物,但是每个方法的利弊(如果有的话)又有什么意义呢?
根据你的例子,例子#1和#2是相同的东西,因为exports
是一个对象。 你只是改变添加条目到这个对象的方式。
这个:
const object = {}; object.func1 = function () { return 'hello'; }; object.func2 = function () { return 'bye'; };
你可以这样写:
const object = { func1: function () { return 'hello'; }, func2: function () { return 'bye'; } };
最后一个例子是ES2015模块 ,在V8(Node.js运行)中还没有实现。 对于这个例子,你需要包babel和babel-preset-es2015 。
但是,使用CommonJS和ES2015模块有一个重要的区别:
CommonJS模块导出值,而ES6模块导出不可变的绑定。 这意味着:CommonJS导出模块的副本 ,而ES2015模块则导出该模块的引用 。
请参阅: ES6模块导出什么? | 2ality.com