谈起nodejs架构是一个很大的构成,作为一个初级前端,也只能浅聊一聊
首先第一个问题必须要回答,就是
nodejs是什么?
在我看来nodejs不是一个框架,不是一门语言,而是一个平台,在这个平台上可以使用多种技术组合,并且可以使用js开发后端应用。
那nodejs到底用到了哪些技术呢?
其用到了V8, libuv, 基于c/C++ 实现的http-parser 等
在网上发现了一张nodejs技术架构图
作为前端开发,用到最多的是nodejs 的api,这些api很多最后是由基于C/C++ 的模块完成的,而api和底层模块的通信由bindings实现,同时也可以自定义插件,进而拥有更多api能力。
同时这里有一个nodejs工作流程
我们的项目是跑在V8引擎上面的,同时v8引擎基于bindings和libuv中的模块进行交互。在libuv中有一个eventloop机制,对于这个机制,看这篇文章就够了