Javascript Nodejs-正确地从其他文件调用方法
我是这个领域的新手,想要修复这个错误,我有两个类,'Ticket.js'用于放置我的路由,还有'support.js'用于声明我的websockets方法, 我只想使用第一个文件中第二个文件中的方法, 以下是两个文件的代码结构:Javascript Nodejs-正确地从其他文件调用方法,javascript,node.js,websocket,Javascript,Node.js,Websocket,我是这个领域的新手,想要修复这个错误,我有两个类,'Ticket.js'用于放置我的路由,还有'support.js'用于声明我的websockets方法, 我只想使用第一个文件中第二个文件中的方法, 以下是两个文件的代码结构: class SupportTicketRouter { . . . sendMessagesSocket = (req, res, next) => { const SUPPORT_SOCKET = require('app/routes
class SupportTicketRouter {
.
.
.
sendMessagesSocket = (req, res, next) => {
const SUPPORT_SOCKET = require('app/routes/socket/support');
const MESSAGES = req.api.support.messages;
SUPPORT_SOCKET.sendModifiedTicket(MESSAGES);
next();
}
}
在另一个文件中:
const SUPPORT_SOCKET = (MQTT_CLIENT, REDIS_CLIENT, IO_SERVER, IO_CLIENT) => {
// EntryPoints
// Exit points
SUPPORT_SOCKET.sendModifiedTicket = (data) => {
IO_SERVER.in(data[0]._id).emit('OneTicketReload', data);
Logger.info('%s%s', 'Ticket sent to room ', data[0]._id);
};
所以基本上我只想从另一个文件调用sendModifiedTicket
提前感谢您应该从定义函数的文件中导出函数:
module.exports = SUPPORT_SOCKET
然后将其包括在您想要使用的任何位置:
const supportSocket = require('./path-to-js-file').
class SupportTicketRouter {...
这也可能有助于:
Controller.js
export class Controller {
constructor(){
this.method = this.method.bind(this)
}
method (req, res) {....}
}
OtherFile.js
函数替代法{
常数控制器=新控制器;
控制器.方法
}
具体问题是什么?从不同的文件调用另一个函数对您来说应该不是问题,我猜,因此请澄清您到底在寻求什么帮助。我在调用函数时遇到此错误:类型上不存在属性“sendModifiedTicket”是否正确导出?console.log在您调用其他函数的第二个文件中记录变量这就是问题所在,我没有正确导出,也不知道如何修复它,在我的第二个文件“module.exports=SUPPORT_SOCKET;”的末尾有这个变量所以我猜,只要调用'const-SUPPORT_-SOCKET=require'app/routes/SOCKET/SUPPORT',就足以获得第一个文件中的方法;您确定您正确定位了文件吗?使用文件夹结构更新问题,并将您的代码与您一起导出到其他文件中需要该函数。我已经这样做了,但我收到了以下错误信息:“MQTT_客户端:任意,REDIS_客户端:任意,IO_服务器:任意,IO_CLIENT:any=>void我想这是因为我在另一个方法中有一个方法,sendModifiedTicket-inside-SUPPORT\u-TICKET!当尝试访问sendModifiedTicket时,我得到以下错误:SUPPORT_SOCKET.sendModifiedTicket不是函数如果在定义SUPPORT_SOCKET的文件中有多个导出,那么在导入方法时,将常量的名称放在花括号中:const{supportSocket}=require./path to js file';