Javascript 在节点中导出各种函数的方法是什么?
因此,我正在构建一个数据库层,并将标准CRUD(创建、读取、更新、删除)操作作为函数公开。我一直在努力寻找导出每个函数的方法 方法1 方法2 或者,直接做:Javascript 在节点中导出各种函数的方法是什么?,javascript,node.js,Javascript,Node.js,因此,我正在构建一个数据库层,并将标准CRUD(创建、读取、更新、删除)操作作为函数公开。我一直在努力寻找导出每个函数的方法 方法1 方法2 或者,直接做: module.exports.func1 = function() {}; module.exports.func2 = function() {}; 方法3 我确信它不会破坏任何方法,但每种方法的优点和缺点(如果有的话)是什么?根据您的示例,示例1和示例2是相同的,因为导出是一个对象。您只需更改向该对象添加条目的方式 这: 你可以这样写
module.exports.func1 = function() {};
module.exports.func2 = function() {};
方法3
我确信它不会破坏任何方法,但每种方法的优点和缺点(如果有的话)是什么?根据您的示例,示例1和示例2是相同的,因为
导出
是一个对象。您只需更改向该对象添加条目的方式
这:
你可以这样写:
const object = {
func1: function () { return 'hello'; },
func2: function () { return 'bye'; }
};
最后一个示例属于,但尚未在V8中实现(Node.js在其中运行)。对于本例,您需要软件包和
然而,使用CommonJS和ES2015模块之间有一个重要区别:
CommonJS模块导出值,而ES6模块导出不可变绑定。这意味着:CommonJS导出模块的副本,而ES2015模块导出模块的参考
请参阅:非常有趣的探索根据没有重大区别。我认为除非您正在传输代码,否则#3不会起作用,但它是较新的ES6语法,如果我通过Babel运行代码,我倾向于使用它。ES6模块尚未在最新的V8上实现,因此,它没有随附的Node.js版本。当然是必要的巴别塔与预设的
es2015
。1和2完全相同,module.exports最初只是一个空对象
module.exports.func1 = function() {};
module.exports.func2 = function() {};
export func1 = function() {}
export func2 = function() {}
const object = {};
object.func1 = function () { return 'hello'; };
object.func2 = function () { return 'bye'; };
const object = {
func1: function () { return 'hello'; },
func2: function () { return 'bye'; }
};