一:知识点:

 

1-1: 模块初始化:

 

 

1-2 主模块:

 

 

 

 

 

 

 

 

 

 

 二: 测试

 

2-1: 代码:

 

1) 主模块 1:   main.js

 

1 var counter1 = require("./counter.js");
2 var counter2 = require("./counter.js");
3 
4 
5 console.log(counter1.count());
6 console.log(counter2.count());
7 console.log(counter1.count());
8 console.log(counter2.count());

 

 2) 主模块2:   main2.js

1 var counter3 = require("./counter.js");
2 
3 
4 // console.log(counter1); //ReferenceError: counter1 is not defined
5 
6 console.log(counter3.count());

 

 3)处理程序: counter.js

 

1 var i = 0;
2 
3 function count(){
4     return ++i;
5 }
6 
7 exports.count = count;

 

 

 2-2: 测试

 

运行:

 

----------------------------

 分析:

  1.运行 主模块 main.js  , 依次输出 1, 2 ,3, 4  ;  可见 模块counter.js  到导出 对象 只被 初始化一次.

  2.运行 main2.js  , 输出 1 ,不是 5 .  这是因为 通过命令行 重新运行 main2.js .  当做重新启动主模块

    // console.log(counter1); //ReferenceError: counter1 is not defined

    如果取消注释, 这里会报错. 

    因为 counter1 是在  main.js  中定义的.

 

  3.如果 多次运行 main.js

    

  

  虽然 没有运行 main2.js  , 只是 重复运行 main.js  .  但是 输出 不是按照我们的期望  1 2 3 4 ,  5 6 7 8 , 9 10 11 12 ,

  而是重复的 1 2 3 4 .

  这是因为 每次通过 命令行 运行 main.js  ,  都应该 视作 一个 新的 开始.

 

 

 

三: 参考链接

   7天学会nodejs