c++ - node.js/[my own library/plugin] 如何在 v8 上运行?

标签 c++ node.js v8

它是否使用这样的库:

http://code.google.com/p/v8-juice

http://ui.ajax.org/#o3

https://github.com/tsa/vu8

或者它是否编写了自己的库?如果 v8 是为执行 javascript 而编写的,为什么 node.js 库使用 C 代码?只是为了文件系统/事件的东西?如果是这样,那为什么有必要,v8 本身不需要事件和文件系统的东西吗?

如果我想使用仅支持 C api 的数据库,我该怎么做?现在我可能会写一个 v8-juice 插件。

最佳答案

node.js 包含它自己的 v8 嵌入式版本(不确定它是否是定制的,但它可能是)。

Javascript 本身不提供文件系统 I/O 之类的接口(interface),因此您作为嵌入者(在本例中为 Node )必须提供 native 代码对象来公开该功能。顺便说一下,浏览器对 DOM 和网络功能做同样的事情。

If I want to work with a database that only supports a C api, how would I go about doing that?

为此,您需要一个 node.js 扩展( native 代码插件)。如果幸运的话,有人已经为您的数据库系统做了准备,如果没有,请查看源代码以了解类似扩展的编写方式。这是an introduction article .您需要熟悉编写 v8 扩展,因为这基本上就是 Node 扩展。

如果您通过网络连接与数据库对话,并且想自己实现有线协议(protocol),您也可以尝试使用纯 Javascript 实现,like someone did for MySQL.

关于c++ - node.js/[my own library/plugin] 如何在 v8 上运行?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5830338/

相关文章:

mysql - 临时表不存在错误

regex - Node/V8 中是如何实现正则表达式匹配的?

c++ - 如何使用boost使用shared_ptr成员序列化对象

c++ - 内存栅栏是否涉及内核

javascript - 在整页加载时,检测是否是 Electron

node.js - 追踪 meteor /Node 光纤中的堆栈溢出

javascript - 在 Node.js 中禁用 GC

c++ - OpenCv 编译和链接错误

c++ - dlib 在屏幕上显示值

javascript - mongodb 从一个值中获取整个文档