Node.js Addons翻译(C/C++扩展)

 更新时间:2016年06月12日 10:47:59   作者:橙皮书  
这篇文章主要介绍了Node.js Addons翻译(C/C++扩展) 的相关资料,非常不错具有参考借鉴价值,需要的朋友可以参考下

PS:请先升级Node 6.2.1,Node 升级命令 npm install -g n;n stable.NOde.js扩展是一个通过C/C++编写的动态链接库,并通过Node.js的函数require()函数加载,用起来就像使用一个普通的Node.js模块。它主要为Node与C/C++库之间提供接口。

这样,若一个方法或函数是通过Node扩展实现则变得相当复杂,涉及几个模块与接口的知识:

•v8:一个实现了通过C++库实现了的javascript.V8提供了创建对象机制,回调函数等。V8API文档大多在v8.h头文件中。点我v8在线文档

•libuv:一个实现了Node.js的工作线程和异步行为的平台的事件循环的C库。它还充当了一个跨平台的抽象库,可以简单地POSIX-like式的访问所有主流操作系统系统许多常见任务,例如与文件系统交互、套接字、定时器和系统事件。libuv还提供了一个抽象pthreads-like线程,可以用于更复杂的异步。Node.js的C/C++扩展需要超越标准事件循环。插件作者鼓励去思考如何避免阻塞I/O事件循环和通过libuv非阻塞系统操作、工作线程、用户自定义的线程完成任务密集型工作。

•Node.js内置库:Node.js本身使用了大量的C/C++扩展的API,C/C++扩展时最重要的一个类node:ObjectWrap

•Node.js众多的静态链接库如OpenSSL:Node.js的其它的库在它的源码目录树下的 deps目录。详情请见·Node.js's own dependencies for additional information。点我Node.js官方扩展库示例,这也许是你为Node.js编写C/C++扩展库的起点。只有V8和OpenSSL类经常在Node C/C++扩展中频繁的使用。

Node C/C++扩展第一弹-最新示例Hello World

该示例适用Node.js版本号为V5.0以上。

// hello.js
const addon = require('./build/Release/addon');
console.log(addon.hello()); // 'world'
// hello.cc
#include <node.h>
#include <v8.h>
namespace demo {
using v8::FunctionCallbackInfo;
using v8::Isolate;
using v8::Local;
using v8::Object;
using v8::String;
using v8::Value;
void Method(const FunctionCallbackInfo<Value>& args) {
Isolate* isolate = args.GetIsolate();
args.GetReturnValue().Set(String::NewFromUtf8(isolate, "world"));
}
void init(Local<Object> exports) {
NODE_SET_METHOD(exports, "hello", Method);
}
NODE_MODULE(addon, init)
} // namespace demo 
// binding.gyp
{
"targets": [
{
"target_name": "addon",
"sources": [ "hello.cc" ]
}
]
} 

node-gyp命令

复制代码 代码如下:

node-gyp configure build

以上所述是小编给大家介绍的Node.js Addons翻译(C/C++扩展)的相关知识,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对脚本之家网站的支持!

您可能感兴趣的文章:

相关文章

  • 详解nodejs操作mongodb数据库封装DB类

    详解nodejs操作mongodb数据库封装DB类

    这篇文章主要介绍了详解nodejs操作mongodb数据库封装DB类,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2017-04-04
  • Nodejs 获取时间加手机标识的32位标识实现代码

    Nodejs 获取时间加手机标识的32位标识实现代码

    本文给大家分享nodejs获取时间加手机标识的32位标识实现代码,非常不错,具有参考借鉴价值,需要的朋友参考下
    2017-03-03
  • node.js中的buffer.toString方法使用说明

    node.js中的buffer.toString方法使用说明

    这篇文章主要介绍了node.js中的buffer.toString方法使用说明,本文介绍了buffer.toString的方法说明、语法、接收参数、使用实例和实现源码,需要的朋友可以参考下
    2014-12-12
  • nodejs使用Express框架写后端接口的全过程

    nodejs使用Express框架写后端接口的全过程

    最近学习了基于前后端分离的开发模式,我前端使用Vue框架,后端使用nodejs开发API接口,下面这篇文章主要给大家介绍了关于nodejs使用Express框架写后端接口的相关资料,需要的朋友可以参考下
    2022-05-05
  • node.js使用 http-proxy 创建代理服务器操作示例

    node.js使用 http-proxy 创建代理服务器操作示例

    这篇文章主要介绍了node.js使用 http-proxy 创建代理服务器,结合实例形式分析了node.js使用 http-proxy 创建代理服务器原理、具体步骤与相关注意事项,需要的朋友可以参考下
    2020-02-02
  • 详解express使用vue-router的history踩坑

    详解express使用vue-router的history踩坑

    这篇文章主要介绍了express 使用 vue-router 的 history 踩坑,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2019-06-06
  • node.js中实现同步操作的3种实现方法

    node.js中实现同步操作的3种实现方法

    这篇文章主要介绍了node.js中实现同步操作的3种实现方法,本文用实例讲解一些需要同步操作的情况下,如何编程实现,需要的朋友可以参考下
    2014-12-12
  • node.js express JWT token生成与校验的实现

    node.js express JWT token生成与校验的实现

    本文主要介绍了node.js express JWT token生成与校验的实现,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2023-12-12
  • node-sass一直安装不上、安装失败的原因分析

    node-sass一直安装不上、安装失败的原因分析

    一个项目一直以来运行都是正常的,今天运行就突然报错了,错误如下: 错误大致意思就是node-sass安装失败,下面这篇文章主要给大家介绍了关于node-sass一直安装不上、安装失败的原因分析,需要的朋友可以参考下
    2023-02-02
  • node.js中koa和express的差异对比

    node.js中koa和express的差异对比

    Express和koa都是服务端的开发框架,服务端开发的重点是对HTTP Request和HTTP Response两个对象的封装和处理,下面这篇文章主要给大家介绍了关于node.js中koa和express的差异对比,需要的朋友可以参考下
    2023-05-05

最新评论