node.js模块全局变量何时初始化
程序员文章站
2024-02-17 16:09:28
...
日常写bug
今天调试node工程的时候遇到这样的问题,
就是在一个自定义模块中的定义了全局变量url,一个字符串
大概位置在这里
在该模块暴露出的接口我对url进行字符串的拼接,
发现接口每次被调用都会在之前的基础上加一个ip,最初这个模块是用来查询客户端的ip归属地的,但是这样一来每次的url都会在之前的基础上变长,就没有办法进行了。
调了半天才发现这个url在启动服务器是就进行了初始化,之后不再进行
var url ='http://ip.chinaz.com/';
所以该字符串就越来越长,以至于只能用一次,后来的就会出错。
解决方法:
将赋值语句放入函数体内部。
通过这个尝试,也理解了nodejs的模块加载是的变量初始化问题,即只加载一次。
上一篇: stl—map
推荐阅读