express项目中的app.js文件中的一个问题

就是想问一下在app.js中定义变量的位置不同会有任何影响 现在碰到一个很奇怪的问题,在socket.io中使用一个在app.js中定义的键值对变量

var kv = {};

这个变量的用处是每次有客户端接入socket.io的时候把socket的名称放入这个变量中,用于存储,暂时没用数据库。 问题是如果这个键值对变量定义在路由函数之前就会每次建立socket.io连接的时候都调用这个定义的语句,也就是每次都初始化这个键值对变量,之前存入的socket的名称都没了,然后如果把这个定义语句放在路由语句下面,就不会每一次有客户端接入都重新初始化,达到了来一个客户端存入一个信息的效果。 想问一下在app.js中定义变量需要考虑位置吗,因为这个问题貌似就是定义变量的位置不对,那每一次socket.io中要用到的时候都会去初始化这个变量,但是定义在其他的位置就不会每次都去初始化,很费解啊,希望大大们能解答一下。

查看回复