一、定义及优势
定义:Node.js是一个基于 Chrome V8 引擎 的 JavaScript 运行时,它以事件驱动为基础实现了非阻塞模型。
优势:由于Web场景下的大多数任务(静态资源读取、数据库操作、渲染页面)都是I/O密集的,所以使用非阻塞模型就可以大大地提高CPU的利用率。
使用场景:Web Server、本地代码构建(用于编译构建前端代码)、实用工具开发。
二、成员
- CommonJs:模块规范
- global:全局对象
- process:当前执行的进程
三、CommonJS规则
- 每个文件是一个模块,有自己的作用域。
- 在模块内部module变量代表模块本身
- module.exports属性代表模块对外的接口
实例1:编写2个模块用于实践下上述的三条规则。
新建文件01_testA.js,内容如下:
const testVar = 100;
function test() {
console.log(testVar);
}
// 将变量暴露给其他模块
module.exports.var = testVar;
module.exports.fn = test;
console.log('testA executed');
再新建一个模块,创建文件01_testB.js:
// 支持js、json、node扩展名,不写依次尝试匹配。
// 若不写路径则认为是build-in模块或者各级node_modules内的第三方模块
// require特性:1、module被加载 的时候执行,加载后缓存 2、一旦出现某个模块被 循环加载,就只输出已经执行的部分,未执行的部分不会输出
const mod = require('./01_testA');
console.log(mod.var);
mod.fn();
在命令行运行01_testB.js文件,查看模块之间的调用结果,命令行输入node 01_testB.js
,结果如下:
testA executed
100
100