版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/AndyViky/article/details/88373350
#node c++扩展模块
简介:
- node支持编写c/c++扩展模块以提高响应速度
- 扩展模块属于文件模块
- 适用于部分复杂且耗cpu的计算(可放置子线程中进行)
创建:
// 创建test.cpp
#include <node.h>
using v8::FunctionCallbackInfo;
using v8::Isolate;
using v8::Local;
using v8::Object;
using v8::String;
using v8::Value;
void CAMOpen(const FunctionCallbackInfo<Value>& args) {
Isolate* isolate = args.GetIsolate();
args.GetReturnValue().Set(String::NewFromUtf8(isolate, "cam_open..."));
}
void init(Local<Object> exports) {
NODE_SET_METHOD(exports, "CAMOpen", CAMOpen);
}
NODE_MODULE(FaceRecognition, init);
// 创建binding.gyp
{
"targets": [
{
"target_name": "test",
"sources": [ "test.cpp" ]
}
]
}
// 安装编译环境
npm install -g node-gyp
// 在test.cpp目录下编译
node-gyp configure build
// 测试
const test = require('./build/Release/test');
console.log(test.CAMOpen());
node npm包
- npm的常用功能
- npm -v // 查看当前版本
- npm // 列出npm所有命令
- 全局安装 npm install <包名> -g 将该包安装为全局可用的可执行命令
- 本地安装 //现将包的源码下载至本地
- npm install (tarbal file) // 包含package.json的存档文件
- npm install (tarbal url) // 也可以为一个url地址
- npm install (folder) // 也可以为一个目录下有package.json的目录
- 从非官方源安装
- npm install <包名> --registry=http://registry.url
- 设置默认源 npm config set registry http://registry.url
- 创建自己的包
- 包的基本结构
- package.json // 包描述文件
- bin // 用于存放可执行二进制文件的目录
- lib // 存放javascript的目录
- doc // 包的文档
- test // 包的单元测试用例
- 发布包
- 生成包描述文件 npm init
- 注册仓库账号 npm adduser
- 上传包 npm publish .
- 包的基本结构