0
我一直在阅读这篇文章,并且有很多方法可以在node.js中导出模块。从导出的模块(node.js)访问函数
其中一个简单的事情,你可以用模块做的就是在一个文件中封装的功能,像这样:
module.exports = {
sayHelloInEnglish: function() {
return "HELLO";
},
sayHelloInSpanish: function() {
return "Hola";
}
};
但是我想创造一些更dirverse模块等香港专业教育学院创建以下用户模块:
var UserModule = function (socket) {
var userList = [];
socket.on('userData', function (userDetails) {
userDetails.socket = socket;
userList[userDetails.id] = userDetails
});
socket.on('getActiveUsers', function() {
socket.emit('activeUsers', userList);
});
function helloWorld(){
console.log('hello world');
}
};
module.exports = function (socket) {
return new UserModule(socket);
};
现在我requireing此模块在我的IO例如:
io.on('connection', function (socket) {
var my_user = userList.id;
socket.on('userData', function (userDetails) {
userDetails.socket = socket;
userList[userDetails.id] = userDetails
});
var userModule = require('./costum_modules/UserModule.js')(socket);
userModule.helloWorld();
var chatModule = require('./costum_modules/ChatModule.js')(socket, userModule);
var cacheModule = require('./costum_modules/CacheModule.js')(socket, userModule);
var notificationModule = require('./costum_modules/NotificationModule')(socket, sequelize, userList);
});
socket.on
方法正常工作在我的UserModule
但是我无法调用功能helloWorld
。如果我尝试我得到以下错误:
userModule.helloWorld is not a function
所以我的问题是,我试图做甚至可能吗?我如何能够将objects
,functions
ect存储在模块中供以后使用?