模块初始化
一个模块中的JS代码仅在模块第一次被使用时执行一次,并在执行过程中初始化模块的导出对象。之后,缓存起来的导出对象被重复利用。

主模块
通过命令行参数传递给NodeJS以启动程序的模块被称为主模块。主模块负责调度组成整个程序的其它模块完成工作。例如通过以下命令启动程序时,main.js就是主模块。

$ node main.js
完整示例
例如有以下目录。

  • /home/user/hello/

    • util/
      counter.js
      main.js
      其中counter.js内容如下:

var i = 0;

function count() {
return ++i;
}

exports.count = count;
该模块内部定义了一个私有变量i,并在exports对象导出了一个公有方法count。

主模块main.js内容如下:

var counter1 = require('./util/counter');
var counter2 = require('./util/counter');

console.log(counter1.count());
console.log(counter2.count());
console.log(counter2.count());
运行该程序的结果如下:

$ node main.js
1
2
3
可以看到,counter.js并没有因为被require了两次而初始化两次。

转载于:https://www.cnblogs.com/aclihui/p/Nodejs-modelchushihua.html

Nodejs模块初始化相关推荐

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

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

  2. 基于源码剖析nodejs模块系统

    nodejs模块系统 简介 为了让Node.js的文件可以相互调用,Node.js提供了一个简单的模块系统. 模块是Node.js 应用程序的基本组成部分,文件和模块是一一对应的.换言之, 一个 No ...

  3. nodeJS学习(9)--- nodeJS模块:exports vs module.exports

    模块简介: 通过Node.js的官方API可以看到Node.js本身提供了很多核心模块 http://nodejs.org/api/ 这些核心模块被编译成二进制文件,可以 require('模块名') ...

  4. HC-SR04模块初始化

    在进行初始化的时候我们首先要了解超声波模块的工作原理 VCC 供 5V电源,GND 为地线,TRIG 触 发 控 制 信 号 输入,ECHO 回响信号输出等四个接口端 最后看时序图,也就是模块初始化的 ...

  5. BLAM源码解析(一)—— 模块初始化

    接下来写一个开源SLAM算法系列吧,本期介绍BLAM算法.BLAM算法是伯克利的一位大牛写的,首先名字就很有意思,BLAM表示 B(erkeley) L(localization) A(nd) M(a ...

  6. LORA模块初始化失败

    LORA模块初始化失败了,单片机和模块之间通信协议为SPI: 阅读文档发现,是因为SPI速率太高倒置初始化失败导致: 不同主频的单片机每个模式的引脚速率不同,那个模块要求SPI < 10MHZ, ...

  7. 浅谈4.X内核和5.X内核LSM模块初始化差异

    最近在帮同事解一个LSM子模块的问题的时候,发现4.X内核和5.X内核的初始化流程存在较大的差异.借此问题,我也研究了一下两个大版本内核的LSM模块,最终有所获.先是在网上查找资料,然而目前网上很少有 ...

  8. 通过 Browserify 在浏览器中使用 NodeJS 模块

    NodeJS 把 JavaScript 的使用从浏览器端扩展到了服务器端,使得前端开发人员可以用熟悉的语言编写服务器端代码.这一变化使得 NodeJS 很快就流行起来.在 NodeJS 社区中有非常多 ...

  9. 【蓝桥杯嵌入式】比赛笔记(2)根据固件库快速配置各模块初始化

    [蓝桥杯嵌入式]比赛笔记(2)根据固件库快速配置各模块初始化 因为蓝桥杯比赛时间很短,并且如果自己去记忆各模块初始化的话,也难免有问题,所以这里给出一个通过固件库的快速初始化模块的方法. 比赛提供固件 ...

最新文章

  1. 李宏毅机器学习笔记(五)-----Where does the error come from
  2. Android EditText常见方法总结
  3. chrome面板介绍
  4. mac安装和使用boost库
  5. .Net转Java自学之路—基础巩固篇二十(Lambda)
  6. 【华为OJ】按单词将句子逆序
  7. 3行python代码实现假聊天机器人(慎入:这是假机器人!!!)
  8. USGS网站中STRM DEM数据批量下载
  9. DSP PMBus 相关知识储备
  10. 南昌工程学院c语言试题,南昌工程学院概率论与数理统计试题库部分题目
  11. XSS进阶二 ——合天网安实验室学习笔记
  12. Android9设备打开WIFI热点,Android9.0Wifi热点开启流程梳理
  13. 花房集团CEO于丹内部信:上市即暴富年代已一去不复返
  14. python刷步数程序设计_乐心健康间接修改微信步数-Docker持久运行python脚本
  15. 任务卡_05-数据库_数据库基础
  16. 文件服务器均衡负载,文件服务器均衡负载
  17. Windows畸形文件夹
  18. VMware虚拟机不能全屏
  19. CSS——景深perspective属性
  20. java 计算性能,性能计算公式

热门文章

  1. SpringBoot POM web开发(spring-boot-starter-web)
  2. mybatis 动态SQL-foreach标签
  3. python virtualenv
  4. Midi 乐器set
  5. Python DButils
  6. MySQL Mathematical Functions(数学方法)
  7. scrapy item.py
  8. 3.3 超参数训练的实践:Pandas VS Caviar
  9. 3.2 为超参数选择合适的范围
  10. Oracle join多表查询