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存儲在模塊中供以後使用?