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

时间:2014-09-18 14:48:21

标签: javascript node.js

好的,我还没有完全理解在Node中要求模块的最佳方法,这些模块将在几个js文件之间共享。例如:如果我有一个主app.js和另外两个文件:routes1.jsroutes2.js包含app.js中所需的(主要)导出路由。

我认为如果我需要,我们都同意 - 例如 - UnderscoreJs。我只是在需要它的每个文件中重复这行代码。

var _ = require('underscore');

但是公开函数/构造函数的模块怎么样,如下所示:

var email = require('powerdrill')('YOURAPIKEY');

如果我在每个文件中重复此代码,我最终得到了三个powerdrill对象实例,对吧?虽然这很好但我不能帮助感觉这是对的。

或者如果我只是想在少量文件中要求它,那么它的完全可行和精细?

问题:对于那些一直在使用Node一段时间并且对您需要的方式感到满意的所有人。你是如何解决"案例2上面?也许没有正确的方法,但一点指导将不胜感激。

1 个答案:

答案 0 :(得分:1)

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

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

// 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实例。