我已经阅读了一些有关nodejs体系结构的好文章,例如this。他们中的许多人都提供了有关C / C ++绑定,V8引擎和libuv的详细解释,还提供了诸如事件驱动和非阻塞I / O之类的nodejs功能。但是很少有人谈论流程。

我在另一篇有关nodejs编译流程的文章中找到this。流程很清晰,但是javascript和c ++库如何精确地协同工作来完成诸如文件系统,网络之类的工作。 nodejs是否将javascript编译为c ++编码,以便它可以完成服务器端的工作?

最佳答案

Node大部分使用libuv。看到:


https://github.com/libuv/libuv


它将libuv提供的功能公开给V8。看到:


https://github.com/v8/v8


请参阅本教程,以了解此类绑定的外观:


http://luismreis.github.io/node-bindings-guide/


您可以将Node视为libuv的V8绑定。阅读libuv和V8的文档时,您将了解如何将两者组合在一起-它们的组合基本上是您问题的答案。

看一下Node源代码:


https://github.com/nodejs/node


只需查看回购协议,就可以很好地了解所有工作原理。

关于javascript - Node.js编译流程,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/42957176/

10-12 00:10