nodejs 写c++插件的实例
前提描述
为了方便计算数据库中数据,如我们睡眠床的心率并计算心率变异率而做,用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++插件的实例相关推荐
- 页面手写签名插件 jSignature.min.js 使用实例
页面手写签名插件 jSignature.min.js 使用实例 jSignature.min.js 插件下载 页面使用demo <!DOCTYPE html> <html xmlns ...
- js foreach用法_使用 nodejs 写爬虫(一): 常用模块和 js 语法
本篇是使用 nodejs 写爬虫系列教程的第一篇, 介绍了使用 nodejs 写爬虫过程中常用的模块和一些必须掌握的 js 语法 <!-- more --> 常用模块 常用模块有以下几个: ...
- 制作npm插件vue-toast-m实例练习
制作npm插件vue-toast-m实例练习(消息弹窗) 一.使用npm插件 import VueToast from 'vue-toast-demo-cc'Vue.use(VueToast)this ...
- 写JQuery 插件 什么?你还不会写JQuery 插件
http://www.cnblogs.com/Leo_wl/p/3409083.html 前言 如今做web开发,jquery 几乎是必不可少的,就连vs神器在2010版本开始将Jquery 及ui ...
- 用nodejs写一个yys挂机脚本
用nodejs写一个yys外挂 为什么要用node来写 曾经用python写过一个自用御魂脚本,作为一个前端码农,就考虑能不能用js实现,js如何来使用天使插件(TSPlug.dll)实现后台操作呢? ...
- 什么?你还不会写JQuery 插件
前言 如今做web开发,jquery 几乎是必不可少的,就连vs神器在2010版本开始将Jquery 及ui 内置web项目里了.至于使用jquery好处这里就不再赘述了,用过的都知道.今天我们来讨论 ...
- [转]什么?你还不会写JQuery 插件
本文转自:http://www.cnblogs.com/joey0210/p/3408349.html 前言 如今做web开发,jquery 几乎是必不可少的,就连vs神器在2010版本开始将Jque ...
- 杨辉三角 用php写,PHP_PHP写杨辉三角实例代码,复制代码 代码如下: ?php // - phpStudy...
PHP写杨辉三角实例代码 复制代码 代码如下: //杨辉三角 for ($i=6;$i >= 0;$i--) { for ($j=$i;$j <= 6;$j++) { if ($j < ...
- Chrome 插件:自己写的插件提示请停用以开发者模式运行的插件处理方法,该拓展程序未列在chrome网上应用商店中,并可能是在您不知情的情况下添加的解决办法
Chrome 浏览器插件问题处理 第一章:问题描述 ① 问题一:请停用以开发者模式运行的插件 ② 问题二:该拓展程序未列在 chrome 网上应用商店中,并可能是在您不知情的情况下添加的 第二章:Ch ...
最新文章
- ZYNQ中断示例修改
- 函数声明、函数表达式、匿名函数、立即执行函数
- js function理解
- grad在python什么模块_深度学习(Deep Learning)基础概念1:神经网络基础介绍及一层神经网络的python实现...
- raspberry pi_如何进行Raspberry Pi聚会
- Elasticsearch--进阶-term_keyword查询---全文检索引擎ElasticSearch工作笔记015
- UNIX环境高级编程——线程同步之条件变量以及属性
- 运维的核心竞争力是什么
- 拓端tecdat|GIS遥感数据可视化评估:印度河流域上部的积雪面积变化
- php 3种常见设计模式
- Matlab语言(一)
- windowsXP消灭蓝屏的另类招式
- pxe服务器 安装系统,通过PXE网络安装windows系统
- (附源码)基于Java SpringBoot的电影院管理系统设计与实现 毕业设计 011633
- Oblog 4.5-4.6 accessmssql getshell 0day
- 实验4-1-5 统计素数并求和 (20 分)
- Beyond Compare 4.2.10 zhuce
- python智能写小说软件_Scratch编程实现智能自动创作写小说,自动生成文章,自动写材料...
- 多渠道归因分析(Attribution):传统归因(一)
- react native关于FlatList的随手记
热门文章
- Azure夜校培训第二场2月22日18:00 正式盛情开幕
- 都市男女的32声叹息
- windows安装logstash6.2.3
- python爬取拉勾网_(转)python爬取拉勾网信息
- 手机出货量暴跌!00后4年没换手机:除了贵、穷还有别的原因...
- 三七互娱李逸飞:未来将关注元宇宙等新业态 创新构建核心优势
- 外媒:台积电准备明年下半年采用3nm工艺为苹果生产芯片
- 虎扑入股“造物”App关联公司 后者为模玩、手办平台
- 制动方面存隐患 上汽通用召回2215辆别克、雪佛兰等车型
- “碰瓷”特斯拉翻船,卡车界明星创企Nikola身陷“骗局”危机