如何将函数拆分为两个不同的文件节点js

时间:2014-04-28 17:02:15

标签: javascript node.js

您好我是Node js的新手,所以如果我错了请忽略。

我有一个像

这样的文件
  exports.Client = function() {
            this.example = function(name, callback) {
                console.log(name);
            };
            this.example1 = function(name1, callback) {
                console.log(name1);
            };

    };

我可以像这样访问

var Client = require('./client.js').Client;
var client = new Client();
client.example1=.....

如何将example1函数拆分为另一个js文件,并仍然使用Client对象来访问它。

2 个答案:

答案 0 :(得分:0)

我建议你阅读本页:http://nodejs.org/api/modules.html

由于module.exports,您的javascript模块应该导出该功能。

example1.js文件的内容:

module.exports.example1 = function(name1, callback) {
            console.log(name1);
        };

由于client.js文件中的require功能,您可以访问该功能:

var example1 = require('./example1.js').example1 ;

module.exports.Client = function() {
        this.example = function(name, callback) {
            console.log(name);
        };
        this.example1 = example1;

};

请注意,nodejs模块是单例。

答案 1 :(得分:0)

首先,这是一个例子:

<强>的客户机/ index.js:

function Client (name) {
  this.name = name;
}

Client.prototype.example = require('./example');

exports.Client = Client;

<强>的客户机/ example.js:

module.exports = function () {
  console.log(this.name);
};

这与原始类略有不同,因为它使用prototype来添加实例方法。但我认为您会发现这会更容易使用,因为它可以让您访问this内的example.js

另请注意,您可以将任何对象分配给module.exports,这就是您从require获得的内容。您不必只为exports添加属性。