它是否使用这样的库:
http://code.google.com/p/v8-juice
或者它是否编写了自己的库?如果 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/