记录开发Nodejs c++ addon的一些经验(二、数据类型的转换(尤其是Buffer))

常见的数据类型的转换基本比较容易,结合nan应该不是一件难事

参考链接:

http://blog.jobbole.com/109598/

http://deadhorse.me/nodejs/2012/10/09/c_addon_in_nodejs_object.html

 

这里主要说一下Buffer类型的转换:

Buffer是nodejs里面的类型,但是c++里面是没有的,那么怎么实现它们之间的转换呢?

1、c++ -> nodejs

c++里面没有专门的buffer类型,但是有类似的char *[],所以我们可以把它当场buffer,那么怎么把它转换成Nodejs的Buffer呢

用Nan::NewBuffer就可以实现:

 Nan::NewBuffer(char* data, uint32_t size)

另外nan还提供了其它参数和buffer的工具方法,请移步:

https://github.com/nodejs/nan/blob/master/doc/buffers.md#api_nan_new_buffer

 

2、nodejs -> c++

node的buffer模块提供了一些方法来做这件事

你需要引入node_buffer.h头文件,但是便利的是nan.h其实都帮我们引入了这些必要的头文件,所以你只需引入nan.h就可以了

通过如下代码你就可以获取到bufferData和长度:

Local<Object> bufferObj = args[0]->ToObject();
char* bufferData = node::Buffer::Data(bufferObj);
size_t bufferLength = node::Buffer::Length(bufferObj);

参考链接:

stackoverflow

http://www.jianshu.com/p/68d849df6e5e

http://deadhorse.me/nodejs/2012/10/10/c_addon_in_nodejs_buffer.html

转载于:https://www.cnblogs.com/kwzm/p/7592807.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值