一:知识点:

1-1: 模块初始化:

1-2 主模块:

二: 测试

2-1: 代码:

1) 主模块 1:   main.js

 var counter1 = require("./counter.js");
var counter2 = require("./counter.js"); console.log(counter1.count());
console.log(counter2.count());
console.log(counter1.count());
console.log(counter2.count());

2) 主模块2:   main2.js

 var counter3 = require("./counter.js");

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

 console.log(counter3.count());

3)处理程序: counter.js

 var i = 0;

 function count(){
return ++i;
} 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

nodejs -- 主模块 ,初始化.的更多相关文章

  1. Nodejs模块初始化

    模块初始化 一个模块中的JS代码仅在模块第一次被使用时执行一次,并在执行过程中初始化模块的导出对象.之后,缓存起来的导出对象被重复利用. 主模块 通过命令行参数传递给NodeJS以启动程序的模块被称为 ...

  2. nodejs的模块系统(实例分析exprots和module.exprots)

    前言:工欲善其事,必先利其器.模块系统是nodejs组织管理代码的利器也是调用第三方代码的途径,本文将详细讲解nodejs的模块系统.在文章最后实例分析一下exprots和module.exprots ...

  3. nodejs js模块加载

    本文地址:http://www.cnblogs.com/jasonxuli/p/4381747.html nodejs的非核心模块(core module)加载主要使用的就是module.js. 项目 ...

  4. nodejs cluster模块初探

    大家都知道nodejs是一个单进程单线程的服务器引擎,不管有多么的强大硬件,只能利用到单个CPU进行计算.所以,为了使用多核cpu来提高性能 就有了cluster,让node可以利用多核CPU实现并行 ...

  5. Framebuffer 驱动学习总结(二)---- Framebuffer模块初始化

    ---恢复内容开始--- Framebuffer模块初始化过程:--driver\video\fbmem.c 1.  初始化Framebuffer: FrameBuffer驱动是以模块的形式注册到系统 ...

  6. 6. [mmc subsystem] mmc core(第六章)——mmc core主模块

    一.说明 1.mmc core概述 mmc core主模块是mmc core的实现核心.也是本章的重点内容. 对应代码位置drivers/mmc/core/core.c. 其主要负责如下功能: mmc ...

  7. nginx源码分析之模块初始化

    在nginx启动过程中,模块的初始化是整个启动过程中的重要部分,而且了解了模块初始化的过程对应后面具体分析各个模块会有事半功倍的效果.在我看来,分析源码来了解模块的初始化是最直接不过的了,所以下面主要 ...

  8. nodejs事件模块

    nodejs 事件模块 events 只有一个对象 EventEmitter . var EventEmitter = require('events').EventEmitter;var life ...

  9. 配置 Windows 下的 nodejs C++ 模块编译环境

    根据 node-gyp 指示的 Windows 编译环境说明, 简单一句话就是 "Python + VC++ 编译环境". 所有需要的安装文件, 我都下载好放到百度云盘了: nod ...

随机推荐

  1. python 匿名函数捕获变量值 (执行时的值)

  2. 20190409Liunx中计划任务及压缩归档week2_day1

    计划任务介绍 我们可以通过一些设置.来让电脑定时提醒我们该做什么事了.或者我们提前设置好,告诉电脑你几点做什么几点做什么,这种我们就叫它定时任务.而遇到一些需要执行的事情或任务.我们也可以通过命令来告 ...

  3. Docker Compose 配置文件常用指令

    Docker Compose 配置文件常用指令 YAML文件格式及编写注意事项 YAML是一种标记语言很直观的数据序列化格式,可读性高.类似于XML数据描述语言,语法比XML简单的很多. YAML数据 ...

  4. 使用js方法时,调用的方法名明明一致,但就是不管用,解决

    前提:代码全部写对 问题:调用的方法名明明一致,但就是不管用 举例:写了个function delete(){}方法, 点击调用delete方法,onclik="delete()" ...

  5. 变量和关系符和JAVA基本类型笔记与常考面试题

    变量的类型:数值型:整型(byte,short,int,long).浮点型(float,double)非数值型:布尔类型(boolean),字符型(char),字符串类型(String),其他引用型 ...

  6. Python实现机器学习算法:决策树算法

    ''' 数据集:Mnist 训练集数量:60000 测试集数量:10000 ------------------------------ 运行结果:ID3(未剪枝) 正确率:85.9% 运行时长:35 ...

  7. LINQ之路13:LINQ Operators之连接(Joining)

    Joining IEnumerable<TOuter>, IEnumerable<TInner>→IEnumerable<TResult> Operator 说明 ...

  8. Centos7 安装并配置redis

    一. 安装 操作系统:Centos 7. 最小化安装 redis版本: 4.0.2 服务器地址:*** 安装过程: 安装wget, yum -y install wget 2.  下载redis wg ...

  9. [福建集训2011][LOJ10111]相框

    这题主要还是分类讨论欧拉回路 首先对于导线一端没有东西的新建一个节点 由于原图不一定连通所以需要用到并查集判断有多少个连通块 将一条导线连接的两个焊点连接 然后先对于只有一个连通块考虑 1.如果一个焊 ...

  10. 【IOS】#import和#include有什么区别,@class呢,#import<>跟#import ""有什么区别?

    1.#import是object-c导入头文件的关键字,#include是C/c++导入头文件的关键字,使用#import导入头文件会自动只导入一次,不会重复导入. 2.@class是告诉编译器某个类 ...