为什么 Node JS 中需要 LIBUV?

新手上路,请多包涵

所以,也许这个问题太菜鸟和新手,但我仍然不知道为什么 LIBUV 在 Node JS 架构中占有一席之地?以上就是我对 NodeJs 架构的理解。

  1. Node Js 基于 V8 构建
  2. V8 能够运行使用 EcmaScript 标准 编写的代码。
  3. V8 是用 C++ 编写的。
  4. 因此,如果您想提供任何新功能,我们可以在我们的 C++ 项目中嵌入 V8,并在 C++ 中使用新的 Embedded V8 附加新代码。

现在有疑问了,

  1. 由于 V8 支持 EcmaScript Javascript ,这意味着它能够 运行使用 EcmaScript 标准编写的回调
  2. 所以我们可以在 C++ 中添加文件系统访问、HTTP 服务器和数据库访问的代码,因为有库(头文件)提供了该功能,因为 Java 是用 C++ 编写的(如果我错了,请纠正我)并且 Java 有能力做相同。
  3. 现在,如果我们可以在 C++ 中添加此功能,那么 Libuv 的位置会在 NodeJs 架构的图片中出现吗?

在此先感谢并祝您编码愉快 :)

原文由 Ankur Verma 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 465
1 个回答

检查下面的文档 -

https://nodejs.org/en/docs/meta/topics/dependencies/#libuv

另一个重要的依赖项是 libuv,这是一个 C 库,用于将非阻塞 I/O 操作抽象为跨所有受支持平台的一致接口。它提供了处理文件系统、DNS、网络、子进程、管道、信号处理、轮询和流的机制。它还包括一个线程池,用于卸载一些无法在操作系统级别异步完成的工作。

综上所述,V8提供了与运行JS文件相关的功能,但要使用网络、文件等系统资源,则使用libuv。它还提供了一个线程模型来访问所提到的资源。

原文由 Shobhit Chittora 发布,翻译遵循 CC BY-SA 4.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题