在nodejs模块之间调用函数

时间:2014-10-04 16:31:48

标签: javascript node.js

我有两个模块:

var client  = require('./handlers/client.js');
var server  = require('./handlers/server.js');

server.createClient()

client.js

var client = function(){
    console.log("New client");
}

exports = module.exports = client;

server.js

var server = {
   createClient: function() {
       var newClient = new client();
   }
}

   exports = module.exports = server;

这样做,服务器模块说客户端功能未定义。

我怎样才能让它发挥作用?

1 个答案:

答案 0 :(得分:2)

如果您想在server.js中调用client(),则必须包含以下行:

var client  = require('./client.js');
在您的server.js文件中

,以便在那里定义client,因此server.js中的整个序列如下所示:

var client  = require('./client.js');
var server = {
   createClient: function() {
       var newClient = new client();
   }
}

exports = module.exports = server;

每个模块中使用的每个模块都必须require()


模块结构适用于每个模块独立存在。这意味着每个模块都有自己独立的命名空间,默认情况下,您不能访问其他模块的命名空间。因此,当您需要访问其他模块中的任何内容时,您必须使用require()来访问它的命名空间,或者您必须在另一个模块中调用一个函数(您有required()个并通过该模块获得访问权。