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

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

var kv = {};

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

  • 像sourceforge这种无刷新的文件下载是怎么做到的?
  • chrome network 问题
  • ReactNative给View设置阴影
  • 新手请教如何用chrome插件在另一个页面内嵌入微博发布器的按钮?
  • react 在写格式中定义onDrop 事件失效问题
  • flash/html5播放HTTP视频,能不能在HTTP请求中自定义header?
  • 正则表达式 匹配第一次出现的字符
  • java js 交互
  • 如何用node写一个脚本
  • 请教:表单一步一步注册流程,是怎么实现的?
  • nginx代理websocket写法问题(使用了socket.io)