【nodejs】进阶开发node.js c++插件

参考 Node.js C++ 插件学习指南 

创建并使用插件【electron-vue】创建Nodejs c++插件,并在electron-vue中调用(addon)

 

整体了解

参考 electron 集成 addon 方案简介 

参考 Node.js Addons (作者Scott Frees)

参考 node中和C++有什么关联

参考 从暴力到 NAN 再到 NAPI——Node.js 原生模块开发方式变迁

  1. *.node 本质上是 *.dll 的动态链接库
  2. nan 全称 Native Abstractions for Node.js ,即 Node.js 原生模块抽象接口
    1. 兼容各不同 Node.js 版本,使其在任意版本都能被编译使用
    2. 一次编写好的代码在不同版本的 Node.js 下也需要重新编译
  3. N-API
    1. 以 C 的风格提供稳定 ABI 接口
    2. 不同版本的 Node.js 使用同样的接口,这些接口是稳定地 ABI 化的,即应用二进制接口(Application Binary Interface)
    3. 在不同 Node.js 下,只要 ABI 的版本号一致,编译好的 C++ 扩展就可以直接使用,而不需要重新编译
  4. node-addon-api
    1. 简化了使用 C ++时由Node.js提供的基于C的N-API的使用

 

代码参考

nodecpp-demo (nan 例子)

node-addons-learn (napi 例子)

node-addon-examples (绝了!nan、napi、node-addon-api 对比)

 

辅助文档

参考 v8 API 文档

参考 nan 文档

参考 napi 文档 (C API)

参考 node-addon-api 文档 (C ++ API)

 

napi 相关

参考 为JS写C++扩展,Napi第一步

参考 写一个N-API没那么难?

 

报错解决

1、使用nan报错 Error: Cannot find module 'nan'  |  错误:找不到模块“ nan” #528

npm install nan

2、 node-gyp rebuild 报错 LINK : fatal error LNK1104: 无法打开文件:×××.lib

参考 node-gyp编译问题

参考 在VS中添加lib库的三种方法

用#pragma comment(lib, ".xxx.lib")这种方式报错,是因为相对路径写得有问题。

 

应用

参考 使用node-addon-api编写c/c++扩展(传递复杂对象)

参考 在 Node.js 和 C++ 之间使用 Buffer 共享数据 

 

 

 

 

 

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值