如何导出中心变量参考

时间:2018-08-22 20:31:42

标签: javascript node.js sockets hapijs

我正在使用Hapi。

我还使用NES客户端连接到另一个节点实例。为了从路由访问此套接字,我将其附加到服务器变量,如下所示:

s=df.groupby(['Zone','Code']).Value.transform('mean')
df['Mean Value grouped by zone and code']=s.groupby([df['Zone'],df['Code']]).head(1)
df['Mean Value grouped by zone and code'].fillna('',inplace=True)
df
Out[268]: 
  Zone Code  Value Mean Value grouped by zone and code
0  Dhk   Z1      2                                   3
1  Dhk   Z1      4                                    
2  Dhk   Z2      6                                   7
3  Dhk   Z2      8                                    
4  Raj   Z1      8                                   9
5  Raj   Z1     10                                    
6  Raj   Z2     12                                  13
7  Raj   Z2     14                                    

我想从库文件访问套接字。如何做到这一点而不必每次都将服务器变量传递给它?当我尝试exports = async () => { //api var server = new Hapi.Server({ host: process.env.WEB_HOST || '127.0.0.1', port: process.env.WEB_PORT || '8080' }); // register plugins await server.register(plugins); // add routes await routes(server); server.socket = new Socket(identifier); // uses NES return server; } 服务器时,它从不提供引用,只是导出变量时的一个版本。

1 个答案:

答案 0 :(得分:0)

您是否尝试过server.decorate。 如果我理解正确,您想从路由访问套接字变量。为什么不创建基本插件并创建您的套接字实例,然后将其传递到服务器对象呢?例如;

exports.plugin = {
    async register(server, options) {                 
        server.decorate('server', 'socketConn', new Socket(identifier));
    },
    name: 'socket-connection'
};

,并且可以在您的路线中以request.server.socketConn的形式访问此变量。