Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/actionscript-3/7.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 从另一个类调用内部方法-节点js_Javascript_Node.js_Express_Websocket - Fatal编程技术网

Javascript 从另一个类调用内部方法-节点js

Javascript 从另一个类调用内部方法-节点js,javascript,node.js,express,websocket,Javascript,Node.js,Express,Websocket,我对Nodejs还是新手,我想通过WebSocket发送消息,所以在我的support socket类中,我有以下内容: support.js class SupportSocket { /** * @constructor SupportSocket */ constructor () { } SupportSocket = (IO_SERVER, IO_CLIENT) => { const USERS = [];

我对Nodejs还是新手,我想通过WebSocket发送消息,所以在我的support socket类中,我有以下内容: support.js

class SupportSocket {
    /**
     * @constructor SupportSocket
     */
    constructor () {

    }

    SupportSocket = (IO_SERVER, IO_CLIENT) => {
        const USERS = [];

        // EntryPoints

        IO_CLIENT.on('joinTicketRoom', (data) => {
            Logger.info('%j', data);
            IO_CLIENT.join(data.tuid);
            USERS.push(data.uuid);
        });

        // THIS IS THE METHOD I WANT TO CALL IN OTHER CLASS
        const sendModifiedTicket = (data) => {
            IO_SERVER.in(data[0]._id).emit('OneTicketReload', data);
            Logger.info('%s%s', 'Ticket sent to room ', data[0]._id);
        };

    };
}
export default {
    'SupportSocket' : SupportSocket,
}
import SupportSocket                     from 'app/routes/socket/support';
class SupportTicketRouter  {
    /**
     * @constructor StateRouter
     */
    constructor () {}
.
.
.
.
    sendTicketsSocket = (req, res, next) => {
        const TICKETS        = req.api.support.tickets;
        SupportSocket.sendModifiedTicket(TICKETS);
        next();
    };
在另一个类中,我尝试调用内部方法sendModifiedTicket,如下所示:Ticket.js

class SupportSocket {
    /**
     * @constructor SupportSocket
     */
    constructor () {

    }

    SupportSocket = (IO_SERVER, IO_CLIENT) => {
        const USERS = [];

        // EntryPoints

        IO_CLIENT.on('joinTicketRoom', (data) => {
            Logger.info('%j', data);
            IO_CLIENT.join(data.tuid);
            USERS.push(data.uuid);
        });

        // THIS IS THE METHOD I WANT TO CALL IN OTHER CLASS
        const sendModifiedTicket = (data) => {
            IO_SERVER.in(data[0]._id).emit('OneTicketReload', data);
            Logger.info('%s%s', 'Ticket sent to room ', data[0]._id);
        };

    };
}
export default {
    'SupportSocket' : SupportSocket,
}
import SupportSocket                     from 'app/routes/socket/support';
class SupportTicketRouter  {
    /**
     * @constructor StateRouter
     */
    constructor () {}
.
.
.
.
    sendTicketsSocket = (req, res, next) => {
        const TICKETS        = req.api.support.tickets;
        SupportSocket.sendModifiedTicket(TICKETS);
        next();
    };
很明显,我做错了什么,因为我犯了以下错误: 应用程序\u路由\u套接字\u支持\u网页包\u导入的\u模块\u 9\uuuuuuu。默认值。sendModifiedTicket不是一个函数 有人能帮忙吗?
谢谢大家!

若并没有扩展,并且构造函数为空,那个么您可以将其完全复制。对于JS文档,您可以使用@class。关于什么是错误的-尝试简单地导出默认SupportSocket,而不是将其包装到对象中。同样,如果对象中的键与值具有相同的名称,则可以使用ommit键名称。已尝试导出默认SupportSocket,但仍然收到相同的错误:(哦,我没有注意到-您正在使用作用域变量作为静态函数-但是从您尝试使用它的地方看不到它。请看:我没有得到它,那么解决方案是什么?我尝试用这个来替换const sendModifiedTicket=…sendMoifiedTicket=…但是仍然有很多错误需要更改,但基本上您应该学会如何使用它。)类方法,或者考虑使用类或函数方法。(ES6类速度较慢,但这部分不那么重要)