статические свойства не работают среди нескольких файлов в nodejs - PullRequest
0 голосов
/ 11 апреля 2019

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

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

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 Ответ

0 голосов
/ 20 апреля 2019

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...