Node JS Express线程说明

我对节点j是比较新的,并且已经阅读了它的一些架构文本。

我了解有关事件循环,主线程(V8引擎线程)和其余作为libuv线程。 只要主线程需要做asynchronous处理,它就把它交给libuv线程,并且作为回报,他们将结果添加到事件循环中。

我的担心是express 。 那么谁将HTTP请求插入到事件循环中。 有没有一个单独的专用线程或它是libuv线程之一?

实际上, express只是使用nodejs的http API。 无论是expression式还是hapi或其他nodejs的框架,他们只是使用nodejs的http / https API作为基础。 而事件循环的概念并不来自nodejs,它来源于javascript,js使用它来处理asynchronous函数,nodej也是如此。然后,对于http请求,与其他asynchronous函数相同,V8将请求委托给nodejs相关模块,然后委托给操作系统,当接收到响应或端口接收到一个http请求,并由此给V8线程时,V8将callback推入队列,等待在sysn线程之后调用。