nodejs -- 主模块 ,初始化.
一:知识点:
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 , 都应该 视作 一个 新的 开始.
三: 参考链接
nodejs -- 主模块 ,初始化.的更多相关文章
- Nodejs模块初始化
模块初始化 一个模块中的JS代码仅在模块第一次被使用时执行一次,并在执行过程中初始化模块的导出对象.之后,缓存起来的导出对象被重复利用. 主模块 通过命令行参数传递给NodeJS以启动程序的模块被称为 ...
- nodejs的模块系统(实例分析exprots和module.exprots)
前言:工欲善其事,必先利其器.模块系统是nodejs组织管理代码的利器也是调用第三方代码的途径,本文将详细讲解nodejs的模块系统.在文章最后实例分析一下exprots和module.exprots ...
- nodejs js模块加载
本文地址:http://www.cnblogs.com/jasonxuli/p/4381747.html nodejs的非核心模块(core module)加载主要使用的就是module.js. 项目 ...
- nodejs cluster模块初探
大家都知道nodejs是一个单进程单线程的服务器引擎,不管有多么的强大硬件,只能利用到单个CPU进行计算.所以,为了使用多核cpu来提高性能 就有了cluster,让node可以利用多核CPU实现并行 ...
- Framebuffer 驱动学习总结(二)---- Framebuffer模块初始化
---恢复内容开始--- Framebuffer模块初始化过程:--driver\video\fbmem.c 1. 初始化Framebuffer: FrameBuffer驱动是以模块的形式注册到系统 ...
- 6. [mmc subsystem] mmc core(第六章)——mmc core主模块
一.说明 1.mmc core概述 mmc core主模块是mmc core的实现核心.也是本章的重点内容. 对应代码位置drivers/mmc/core/core.c. 其主要负责如下功能: mmc ...
- nginx源码分析之模块初始化
在nginx启动过程中,模块的初始化是整个启动过程中的重要部分,而且了解了模块初始化的过程对应后面具体分析各个模块会有事半功倍的效果.在我看来,分析源码来了解模块的初始化是最直接不过的了,所以下面主要 ...
- nodejs事件模块
nodejs 事件模块 events 只有一个对象 EventEmitter . var EventEmitter = require('events').EventEmitter;var life ...
- 配置 Windows 下的 nodejs C++ 模块编译环境
根据 node-gyp 指示的 Windows 编译环境说明, 简单一句话就是 "Python + VC++ 编译环境". 所有需要的安装文件, 我都下载好放到百度云盘了: nod ...
随机推荐
- The Code analysis of the FFDNet model
1. 读取图像并判断是否为灰度图,如为RGB图转化为灰度图,并读取图像的w.h 2.数据格式转换:将uint8表示的读取图像矩阵变为double表示. 3.加入噪声,如果噪声水平$\sigma = 5 ...
- eclipse自定义快捷键(模板)
window->Preferences->Java->Editor->Templates https://blog.csdn.net/changqing5818/article ...
- KNN算法 - 数据挖掘算法(3)
(2017-04-10 银河统计) KNN算法即K Nearest Neighbor算法.这个算法是机器学习里面一个比较经典的.相对比较容易理解的算法.其中的K表示最接近自己的K个数据样本.KNN算法 ...
- MySQL中SQL语句2
上一片介绍了一些基本的SQL的增删改查,这一片会介绍一些进阶的SQL语句使用. MySQL中的视图 视图是什么?当我们总是查询几张表的某个字段时,可以创建一张虚拟表,把这几个字段写入这个虚拟的表,这样 ...
- activiti5/6 系列之--BpmnModel使用
BpmnModel对象,是activiti动态部署中很重要的一个对象,如果BpmnModel对象不能深入的理解,那可能如果自己需要开发一套流程设计器,使用bpmn-js使用前端或者C/S展现流程流转而 ...
- linux基础之awk
gawk - pattern scanning and processing language 基本用法: gawk [options] 'program' FILE... program: PATT ...
- luogu[愚人节题目3]现代妖怪殖民地 NTT
U34272 [愚人节题目3]现代妖怪殖民地 fft 题目链接 https://www.luogu.org/problemnew/show/U34272 思路 虽然是个py题. ntt(或者fft)模 ...
- vs2015调试iisexpress无法启动的问题解决方案整理
我上传的项目代码被同事下载之后使用iisexpress调试一直报错,iisexpress无法启动只能用自己本地的iis,我本地的代码却没问题,试了两种解决办法,问题解决了,在此记录一下也总结一下 方法 ...
- sony Z5P 刷rec、root的方法
想root需要刷第三方recovery,刷recovery需要先解锁.但如果直接解锁,会丧失相机算法.屏幕超逼真模式,所以不能直接来. 大体步骤就是解完锁后自己做个内核刷进去,欺骗系统让他觉得没解锁. ...
- webpack点滴
一个比较完整的webpack的配置,自己配置不断更新. const path = require('path') const configs = require('./configs/') const ...