分解节点模块代码(用于库/ api客户端)

时间:2014-06-08 03:33:50

标签: node.js module javascript

我正在编写节点模块以使用服务的REST API。出于所有意图和目的,我们不妨说它的推特(虽然它不是)。

API不小。十几个端点。鉴于我想为每个端点提供便捷方法,我需要将代码分解为多个文件。一个文件太大了。

现在我正在测试我将在下面概述的模式,但是对于我可能分解此代码的其他方法的任何建议表示感谢。我的目标本质上是扩展单个对象的原型,但是使用多个文件来实现。

这是"模型"我到目前为止使用过,但不要认为这是一个好主意:

TwitterClient.js

function TwitterClient(){
  this.foo = "bar";
}

require("fs").readdirSync("./endpoints").forEach(function(file) {
  require("./endpoints/" + file)(TwitterClient);
});

var exports = module.exports = TwitterClient;

端点/ endpointA.js等

module.exports = function(TwitterClient){
  TwitterClient.prototype.someMethod = function(){
    //do things here
  }
}

基本的想法显然是端点文件夹中的任何文件都会自动加载,并且TwitterClient会被传递给它,这样就可以访问/扩展它的原型。

我不打算坚持这种模式,因为出于某种原因,对我来说这似乎是一个坏主意。

非常感谢任何有关更好模式的建议,欢呼声

0 个答案:

没有答案