Nodejs - Правильный вызов метода из другого файла - PullRequest
0 голосов
/ 14 февраля 2020

Я новичок в этом домене и хочу исправить эту ошибку, у меня есть два класса, 'Ticket. js', где я размещаю свои маршруты и 'support. js', где объявлены мои методы websockets, я просто хочу использовать метод, описанный во втором файле в первом файле, вот структура кода обоих файлов:

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 из другого файла.

Заранее спасибо

Ответы [ 2 ]

1 голос
/ 14 февраля 2020

Вы должны экспортировать свою функцию из файла, в котором она определена:

module.exports = SUPPORT_SOCKET

, а затем включить ее везде, где вы хотите ее использовать:

const supportSocket = require('./path-to-js-file').
class SupportTicketRouter  {...

это также может помочь: https://evdokimovm.github.io/javascript/nodejs/2016/06/13/NodeJS-How-to-Use-Functions-from-Another-File-using-module-exports.html

0 голосов
/ 14 февраля 2020

Контроллер. js

export class Controller {
   constructor(){ 
        this.method  = this.method.bind(this)
   }

    method (req, res) {....}
}

OtherFile. js

function otherMethod () {
     const controller = new Controller();
     controller.method()
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...