Node.js-TypeError:Object#<;对象>;没有办法

Node.js-TypeError:Object#<;对象>;没有办法,node.js,Node.js,我正在尝试包含一个我发现的模块,该模块将帮助管理用户: 我复制了代码,并把它放在与我的server.js相同的目录中 我要求这样做: var express = require('express'); var http = require('http'), mysql = require("mysql"); var server = http.createServer(app); var io = require('socket.io').listen(server); var sessio

我正在尝试包含一个我发现的模块,该模块将帮助管理用户:

我复制了代码,并把它放在与我的server.js相同的目录中

我要求这样做:

var express = require('express');
var http = require('http'), 
mysql = require("mysql");
var server = http.createServer(app);
var io = require('socket.io').listen(server);
var sessionMgm = require("./sessionManagement");
现在,在我的套接字中,我执行以下操作:

io.sockets.on('connection', function (socket) {

    socket.on('setUserInfo', function (data) {
        var sess = new Object();
        sess.sessionId = socket.id;
        sess.userId = data.userId;
        sess.username = data.username;
        sess.role = data.role;
        sessionMgm.add(sess);
    });


    socket.on("private", function(data) { 
        if(data.agentName.length <= 0) {
            data.agentName = 'Besökare';
        }       
        io.sockets.in('Room_' + data.user_id).emit('updatechat', data.agentName, data.msg);
        var user = sessionMgm.getSessionByUserId(data.id);

        console.log('::: A socket with ID ' + user + ' connected! ::: ');
    });

});

正如madflow提到的,在
sessionManagement.js

然后出现错误,因为您在初始化会话管理之前正在导出它。将导出行移到
sessionManagement.js
的末尾应该可以解决这个问题

module.exports = sessionManagement; // <- you export here
    ...
    ...
    ...
var sessionManagement = { // and initialize here

正如madflow提到的,在
sessionManagement.js

然后出现错误,因为您在初始化会话管理之前正在导出它。将导出行移到
sessionManagement.js
的末尾应该可以解决这个问题

module.exports = sessionManagement; // <- you export here
    ...
    ...
    ...
var sessionManagement = { // and initialize here

你把
module.exports=sessionManagement在sessionManagement.js文件中?更好的是:Post代码中没有这个,现在我得到了一个不同的错误:TypeError:无法调用undefined的方法'getSessionByUserId'。。所以发生了一些事情:)@Elvin发布你的sessionManagement.js,否则我们只能guess@ElvinPut:module.exports=会话管理;在底部。您是否放置了
module.exports=sessionManagement在sessionManagement.js文件中?更好的是:Post代码中没有这个,现在我得到了一个不同的错误:TypeError:无法调用undefined的方法'getSessionByUserId'。。所以发生了一些事情:)@Elvin发布你的sessionManagement.js,否则我们只能guess@ElvinPut:module.exports=会话管理;在底部。这奏效了!:)Ofc现在我得到了新的错误:/var index=this.indexOfUser(userId);^ReferenceError:用户ID不正确defined@Elvin将
getSessionByUserId
中的
sessionId
更改为
userId
,该定义起作用了!:)Ofc现在我得到了新的错误:/var index=this.indexOfUser(userId);^ReferenceError:用户ID不正确defined@Elvin将
getSessionByUserId
定义中的
sessionId
更改为
userId
var sessionManagement;  // undefined at this point

module.exports = sessionManagement; // <- you export here, 
// but sessionManagement is undefined at this point 
// and so will be module.exports after this line
    ...
    ...
    ...
sessionManagement = { // and initialize here