node扩展模块和NPM包

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/AndyViky/article/details/88373350

#node c++扩展模块

简介:

  1. node支持编写c/c++扩展模块以提高响应速度
  2. 扩展模块属于文件模块
  3. 适用于部分复杂且耗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包


  1. 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
  2. 创建自己的包
    • 包的基本结构
      • package.json // 包描述文件
      • bin // 用于存放可执行二进制文件的目录
      • lib // 存放javascript的目录
      • doc // 包的文档
      • test // 包的单元测试用例
    • 发布包
      • 生成包描述文件 npm init
      • 注册仓库账号 npm adduser
      • 上传包 npm publish .

猜你喜欢

转载自blog.csdn.net/AndyViky/article/details/88373350