特性:
①非阻塞I/O,事件驱动,单线程
- 非阻塞I/O:进程不等I/O完成(阻塞是等I/O完成后才进行下一步)
- 事件驱动:异步操作结束后通知
②优点
- 前端职责范围变大,统一开发体验
- 处理高并发(单位时间访问量增大),I/O密集(文件操作、网络操作、数据库)场景优势明显
③常用场景
- Web Server
- 本地代码构建
- 实用工具开发
环境:
①CommonJS(模块管理规范)
- 每一个文件是一个模块,有自己的作用域
- 块内module变量代表块本身
- module.exports属性代表块对外接口
②global(全局对象)
- CommonJS
- Buffer、console、process
- timer
process.nextTick( );//先执行
setTimeout( );
setImmediate( );
③process(进程)
const {argv,argvo,execArgv,execPath} = process;//参数相关
const {env} = process;//环境
process.cwd( );//当前路径
④require
- /绝对路径 ./相对于当前路径
- 支持js、json、node拓展名,不写明的的话就依次试
- 不写路径认为是build-in模块或者是各级node_module内第三方模块
- module被加载时执行,加载后缓存
- 若某模块被循环加载,只输出已执行部分,未执行部分不输出
⑤引用系统内置模块(chalk、fs、exps...)
调试:
①Inspector
②VScode