Javascript 从另一个类调用内部方法-节点js
我对Nodejs还是新手,我想通过WebSocket发送消息,所以在我的support socket类中,我有以下内容: support.jsJavascript 从另一个类调用内部方法-节点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 = [];
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类速度较慢,但这部分不那么重要)