前提描述

为了方便计算数据库中数据,如我们睡眠床的心率并计算心率变异率而做,用c++ 写基本的算法,隔一段时间会更新算法,每次更新动态库即可

准备工作

1 安装python3.6 以上的python版本
注意path里面必须有python-srcipt和python的路径,如果有python2.7,删除掉重新安装
2 安装编译工具链
npm install -g node-gyp

编写binging.gyp

{'targets':[{'target_name':'hrv','sources':['hrv.cc'],}]
}

编写代码

一个例子函数,一个加法函数

 #include <node.h>namespace demo {using v8::Exception;using v8::FunctionCallbackInfo;using v8::Isolate;using v8::Local;using v8::Number;using v8::Object;using v8::String;using v8::Value;void Method(const FunctionCallbackInfo<Value>& args) {Isolate* isolate = args.GetIsolate();args.GetReturnValue().Set(String::NewFromUtf8(isolate, "world").ToLocalChecked());}void Method1(const FunctionCallbackInfo<Value>& args) {Isolate* isolate = args.GetIsolate();args.GetReturnValue().Set(String::NewFromUtf8(isolate, "world").ToLocalChecked());}void calc(const FunctionCallbackInfo<Value>& args) {Isolate* isolate = args.GetIsolate();// Check the number of arguments passed.if (args.Length() < 2) {// Throw an Error that is passed back to JavaScriptisolate->ThrowException(Exception::TypeError(String::NewFromUtf8(isolate,"Wrong number of arguments").ToLocalChecked()));return;}// Check the argument typesif (!args[0]->IsNumber() || !args[1]->IsNumber()) {isolate->ThrowException(Exception::TypeError(String::NewFromUtf8(isolate,"Wrong arguments").ToLocalChecked()));return;}// Perform the operationdouble value =args[0].As<Number>()->Value() + args[1].As<Number>()->Value();Local<Number> num = Number::New(isolate, value);// Set the return value (using the passed in// FunctionCallbackInfo<Value>&)args.GetReturnValue().Set(num);}void init(Local<Object> exports) {NODE_SET_METHOD(exports, "hrv", Method);NODE_SET_METHOD(exports, "calc", calc);}NODE_MODULE(NODE_GYP_MODULE_NAME, init)}

写完以后,编译:
node-gyp configure
node-gyp build
生成文件


生成了hrv.node

测试

写nodejs脚本
const addon = require(’./build/Release/hrv’);

console.log(addon.hrv()); // ‘world’
console.log(addon.calc(10, 11));


结果如图所示

nodejs 写c++插件的实例相关推荐

  1. 页面手写签名插件 jSignature.min.js 使用实例

    页面手写签名插件 jSignature.min.js 使用实例 jSignature.min.js 插件下载 页面使用demo <!DOCTYPE html> <html xmlns ...

  2. js foreach用法_使用 nodejs 写爬虫(一): 常用模块和 js 语法

    本篇是使用 nodejs 写爬虫系列教程的第一篇, 介绍了使用 nodejs 写爬虫过程中常用的模块和一些必须掌握的 js 语法 <!-- more --> 常用模块 常用模块有以下几个: ...

  3. 制作npm插件vue-toast-m实例练习

    制作npm插件vue-toast-m实例练习(消息弹窗) 一.使用npm插件 import VueToast from 'vue-toast-demo-cc'Vue.use(VueToast)this ...

  4. 写JQuery 插件 什么?你还不会写JQuery 插件

    http://www.cnblogs.com/Leo_wl/p/3409083.html 前言 如今做web开发,jquery 几乎是必不可少的,就连vs神器在2010版本开始将Jquery 及ui ...

  5. 用nodejs写一个yys挂机脚本

    用nodejs写一个yys外挂 为什么要用node来写 曾经用python写过一个自用御魂脚本,作为一个前端码农,就考虑能不能用js实现,js如何来使用天使插件(TSPlug.dll)实现后台操作呢? ...

  6. 什么?你还不会写JQuery 插件

    前言 如今做web开发,jquery 几乎是必不可少的,就连vs神器在2010版本开始将Jquery 及ui 内置web项目里了.至于使用jquery好处这里就不再赘述了,用过的都知道.今天我们来讨论 ...

  7. [转]什么?你还不会写JQuery 插件

    本文转自:http://www.cnblogs.com/joey0210/p/3408349.html 前言 如今做web开发,jquery 几乎是必不可少的,就连vs神器在2010版本开始将Jque ...

  8. 杨辉三角 用php写,PHP_PHP写杨辉三角实例代码,复制代码 代码如下: ?php // - phpStudy...

    PHP写杨辉三角实例代码 复制代码 代码如下: //杨辉三角 for ($i=6;$i >= 0;$i--) { for ($j=$i;$j <= 6;$j++) { if ($j < ...

  9. Chrome 插件:自己写的插件提示请停用以开发者模式运行的插件处理方法,该拓展程序未列在chrome网上应用商店中,并可能是在您不知情的情况下添加的解决办法

    Chrome 浏览器插件问题处理 第一章:问题描述 ① 问题一:请停用以开发者模式运行的插件 ② 问题二:该拓展程序未列在 chrome 网上应用商店中,并可能是在您不知情的情况下添加的 第二章:Ch ...

最新文章

  1. ZYNQ中断示例修改
  2. 函数声明、函数表达式、匿名函数、立即执行函数
  3. js function理解
  4. grad在python什么模块_深度学习(Deep Learning)基础概念1:神经网络基础介绍及一层神经网络的python实现...
  5. raspberry pi_如何进行Raspberry Pi聚会
  6. Elasticsearch--进阶-term_keyword查询---全文检索引擎ElasticSearch工作笔记015
  7. UNIX环境高级编程——线程同步之条件变量以及属性
  8. 运维的核心竞争力是什么
  9. 拓端tecdat|GIS遥感数据可视化评估:印度河流域上部的积雪面积变化
  10. php 3种常见设计模式
  11. Matlab语言(一)
  12. windowsXP消灭蓝屏的另类招式
  13. pxe服务器 安装系统,通过PXE网络安装windows系统
  14. (附源码)基于Java SpringBoot的电影院管理系统设计与实现 毕业设计 011633
  15. Oblog 4.5-4.6 accessmssql getshell 0day
  16. 实验4-1-5 统计素数并求和 (20 分)
  17. Beyond Compare 4.2.10 zhuce
  18. python智能写小说软件_Scratch编程实现智能自动创作写小说,自动生成文章,自动写材料...
  19. 多渠道归因分析(Attribution):传统归因(一)
  20. react native关于FlatList的随手记

热门文章

  1. Azure夜校培训第二场2月22日18:00 正式盛情开幕
  2. 都市男女的32声叹息
  3. windows安装logstash6.2.3
  4. python爬取拉勾网_(转)python爬取拉勾网信息
  5. 手机出货量暴跌!00后4年没换手机:除了贵、穷还有别的原因...
  6. 三七互娱李逸飞:未来将关注元宇宙等新业态 创新构建核心优势
  7. 外媒:台积电准备明年下半年采用3nm工艺为苹果生产芯片
  8. 虎扑入股“造物”App关联公司 后者为模玩、手办平台
  9. 制动方面存隐患 上汽通用召回2215辆别克、雪佛兰等车型
  10. “碰瓷”特斯拉翻船,卡车界明星创企Nikola身陷“骗局”危机