Javascript 在Nodejs中公开函数/构造函数的重复需求

Javascript 在Nodejs中公开函数/构造函数的重复需求,javascript,node.js,Javascript,Node.js,好的,我仍然没有完全理解在节点中要求模块在几个js文件之间共享的最佳方式。例如:如果我有一个主app.js和两个其他文件:routes1.js和routes2.js包含app.js中所需的(大部分)导出路由 我想,如果我需要(比如)下划线,我们都同意这一点。我只是在每个需要的文件中重复这行代码 var _ = require('underscore'); 但是那些公开函数/构造函数的模块呢,比如: var email = require('powerdrill')('YOURAPIKEY');

好的,我仍然没有完全理解在节点中要求模块在几个js文件之间共享的最佳方式。例如:如果我有一个主
app.js
和两个其他文件:
routes1.js
routes2.js
包含
app.js
中所需的(大部分)导出路由

我想,如果我需要(比如)下划线,我们都同意这一点。我只是在每个需要的文件中重复这行代码

var _ = require('underscore');
但是那些公开函数/构造函数的模块呢,比如:

var email = require('powerdrill')('YOURAPIKEY');
如果我在每个文件中重复这段代码,我会得到powerdrill对象的三个实例,对吗?尽管这很好用,我还是忍不住觉得这不对

或者,如果我只想在少量文件中使用它,那么它可能是完全可行的,而且很好


问题:感谢所有使用Node已有一段时间的用户,他们对自己的需求方式感到满意。您如何“解决”上述案例2?也许没有正确的方法,但请给我一点指导

您可以编写自己的通用模块,并将其包含在内。虽然我更喜欢你已经在做的事,但我想这是品味的问题

这是在没有测试的情况下编写的,因此可能不是正确的方法。也许你会有一些想法:

// utils.js
// ======== define the module
var myEmail = require('powerdrill')('YOURAPIKEY');
module.exports = {
  email: myEmail
};


// app.js
var utils = require('./utils');
utils.mail.useIt();
这样,我认为每个需要utils.js的人都将使用相同的myEmail实例