【问题标题】:static properties doesn't work among multiple files in nodejs静态属性在nodejs中的多个文件中不起作用
【发布时间】:2019-04-11 11:21:43
【问题描述】:

我正在使用 nodejs 和 socket.io 创建一个用于实时操作的新应用程序,当我尝试设置一个静态属性以在我拥有的所有类中使用它时出现问题,即 io 实例。我现在正在做的是我在服务器启动时分配 io 属性,当尝试从其他类中获取它时,它返回 null。 就像每个 require('./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;

        }

    }


}

【问题讨论】:

    标签: node.js socket.io static


    【解决方案1】:

    我在 nodejs 中使用“全局”解决了我的问题,但我仍然不相信我的做法,并等待一些答案。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2012-01-14
      • 2020-09-12
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-01-18
      • 2011-08-24
      • 1970-01-01
      相关资源
      最近更新 更多