Nodejs
简介
- Nodejs 是 JS 的运行时环境,依赖于 v8 引擎,v8 引擎由 c/c++编写,所以 js 代码会转化为 c/c++后在执行;
- Nodejs 使用异步 I/O 和事件驱动设计理念,可以高效地处理大量并发请求,提供了非阻塞式 I/O 接口和事件循环机制;
异步 I/O 最终都是由 libuv 事件循环库去实现的。
- Nodejs 依靠 libuv,适合处理一些 IO 密集型应用;
由于 js 的单线程,很容易造成 cpu 占用率高,不适合 cpu 密集型应用(图像处理、音频处理等需要大量数据结构 + 算法);如果非要写可以使用 c++ 插件或 Nodejs 提供的 cluster。
应用
常见的一些库和框架都需要依赖 nodejs 环境。
其他
定义全局变量
Nodejs 可以使用global.xx去定义一个任何模块都能访问到的全局变量。
但是 ES2020 新增了一个globalThis可以兼容浏览器(window)和 Nodejs 的全局变量。globalThis会自己根据环境变换为 window 或 global,可实现跨平台访问全局变量。
内置 API
__dirname:当前运行文件所在目录(绝对路径);__filename:当前运行文件所在目录的执行文件(绝对路径);- Buffer
- process
- fetch
node18+ 支持,和浏览器一样。