Node.js的基本架构

一张图展示Node.js的基本架构:

Node.js的基本架构

看见底部黄色的显示“Operating System”的模块了没?

我们可以看到,Node.js是运行在操作系统之上的。

Node.js的底层由V8 JS引擎以及用C/C++写的库构成,包括LibUv库、c-ares、llhttp/http-parser、open-ssl、zlib等。

用C/C++写的这几个库中,LibUv负责处理事件循环,另外几个库提供DNS解析、HTTP协议、HTTPS和文件压缩等功能。

这些模块的上一层是“中间层”,我们可以看到,中间层包括Node.js Bindings、Node.js Standrad Library以及C/C++ AddOns。Node.js Bindings的作用是将底层那些用C/C++写的库接口暴露给JS环境,而Node.js Standrad Library是Node.js本身的核心模块。至于C/C++ AddOns,它可以让用户自己的C/C++模块通过桥接的方式提供给Node.js。

这一层再往上就是Node.js的API层了,我们使用Node.js开发应用,主要就是使用Node.js的API层,所以Node.js的应用最终就运行在Node.js的API层之上。