nodejs -- 主模块 ,初始化.

本文通过两个主模块和一个计数器模块的实例,详细解释了Node.js中模块的加载机制,包括模块初始化过程和如何避免多次加载同一模块时产生的计数器递增错误。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

 

一:知识点:

 

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

 

转载于:https://www.cnblogs.com/cbza/p/7344829.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值