記錄開發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


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM