Node.js,commonjs,require
2024-08-26 12:34:22
环境:
Node应用由模块组成,采用CommonJS模块规范。
node的全局对象是global,没有window这个对象。
process表示当前执行的进程,挂在global之下。
CommonJS
每个文件是一个模块,有自己的作用域。执行时,我们写的代码会被自动包裹在一个function里。
在模块内部module变量代表模块本身。
module.exports属性代表模块对外接口。
定义一个模块就是创建一个文件。
想在模块内部输出一些属性的话,需要把属性放到module.exports中。
require规则
/表示绝对路径,./表示相对与当前文件的。
只是js,json,node扩展名,如果我们不写模块的扩展名,会依次尝试,都找不到就报错。
不写路径就认为时build-in模块或者各级node-modules内的第三方模块。
require的特性
module被加载的时候会执行,然后缓存下来。 不会重复加载,即使require了多次。
某个模块出现循环加载的时候,只输出已执行的部分,还未执行的部分不会输出。
//05a.js
module.exports.test = 'A'
const modB = require('./05b')
console.log('modA:',modB.test)
module.exports.test = 'AA'
//05b.js
module.exports.test = 'B'
const modA = require('./05a')
console.log('modB:',modA.test)
module.exports.test = 'BB'
//05.js
const modA = require('./05a')
const modB = require('./05b')
//output:
modB:A
modA:BB
global全局变量下的一些属性
CommonJS, process, console, Buffer, timer
process常用属性
argv:数组
argv0:argv的第0项
execArgv:数组
execPath:argv的第1个参数
cwd():返回当前路径
nextTick()插到队尾
最新文章
- 关于有默认值的字段在用EF做插入操作时的思考
- sublime 函数跳转插件 — ctags 安装和使用
- 关于easyui的窗口和tab页面不执行js说明
- C#多线程之二:ManualResetEvent和AutoResetEvent
- Ubuntu 14.10 下grep命令详解
- JavaScript中伪协议 javascript:研究
- 关于IE8中使用Jquery load方法无法正常加载页面
- Spring之SpringMVC的RequestToViewNameTranslator(源码)分析
- Java基础学习 —— 对象的克隆
- Spark算子--first、count、reduce、collect、lookup
- Android属性动画完全解析(中),ValueAnimator和ObjectAnimator的高级用法
- windows cmd 查找/关闭端口
- [工具配置]使用requirejs模块化开发多页面一个入口js的使用方式
- SWOT分析法——进行项目管理的高效方法
- java学习之路--面试之并发基础
- CSS: Position Introduction.
- cakePHP模型内置回调函数afterFind()的使用。
- git命令小记
- 【LeetCode题解】142_环形链表2(Linked-List-Cycle-II)
- 使用rollup 开发专业js library
热门文章
- 使用mui框架----移动端页面在所有屏幕下自适应
- Windows核心编程&;作业
- The POM for * is invalid
- Linux指令--wget
- Python杂项
- 【转】IGS相关
- Java基础知识(一)
- MySQL--pt-osc工具学习
- plus、max、Pro、Edge
- 通过 ['1', '2', '3'].map(parseInt) 学习 map 和 parseInt 函数