我有两个模块:
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;
这样做,服务器模块说客户端功能未定义。
我怎样才能让它发挥作用?
答案 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()
个并通过该模块获得访问权。