статические свойства не работают между несколькими файлами в nodejs

#node.js #socket.io #static

#node.js #socket.io #статические

Вопрос:

Я создаю новое приложение, используя nodejs и socket.ввод-вывод для операций в реальном времени проблема возникла, когда я попытался установить статическое свойство, чтобы использовать его среди всех имеющихся у меня классов, то есть экземпляра ввода-вывода. что я делаю прямо сейчас, так это то, что я присваиваю свойство ввода-вывода при запуске сервера, а при попытке получить его из других классов возвращается значение null. это похоже на то, что для каждого require(‘./myclass’) он возвращает новый экземпляр файла.

вот мой класс, в котором я устанавливаю свой экземпляр ввода-вывода внутри конструктора

 class IO {

    constructor(io) {
        IO.io = io;
        ioService.foo ='asdasd';
        // this.run();
    }




}
  

вызывая его при запуске сервера внутри index.js:

 const io = require('socket.io')(server, {serveClient: false});
const IO = require('./services/socket/io');
new IO(io);
  

вызов его из других классов

 class Admin {

    send(id, type, data) {
        // console.log('IO.io' , io); // it prints null 
        switch (type) {
            case 'ORDER_CREATED':
                io.emit('message', {
                    type: 'ORDER_CREATED',
                    data: data
                }); // error because io undefined
                break;

        }

    }


}
  

Ответ №1:

Я решил свою проблему, используя «глобальный» в nodejs, все еще не убежденный в том, как я это сделал, и жду некоторых ответов.