c++编写node的addon(4) --callback

本文介绍如何在Node.js环境中使用C++开发插件,包括环境配置、项目搭建、编写C++源码及绑定文件,并通过示例展示了如何调用C++函数并返回JavaScript值。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1.环境

Ubuntu 14.04

node 4.5.0

node-gyp 3.4.0

2.项目

新建项目,加入组件nan和bindings

方法一、在项目文件的node_modules中复制组件nan和bindings的全部代码包;

方法二、在package.json的dependencies中加入这两个组件,用nmp安装

3.c++源码

//addon.cc
#include <nan.h>

void RunCallback(const Nan::FunctionCallbackInfo<v8::Value>& info) {
	v8::Local<v8::Function> cb = info[0].As<v8::Function>();
	const unsigned argc = 1;
	v8::Local<v8::Value> argv[argc] = {Nan::New("hello world").ToLocalChecked()};
	Nan::MakeCallback(Nan::GetCurrentContext()->Global(), cb, argc, argv);
}

void Init(v8::Local<v8::Object> exports, v8::Local<v8::Object> module) {
	Nan::SetMethod(module, "exports", RunCallback);
}

NODE_MODULE(addon, Init)
4.binding.gyp

{
	"targets": [
		{
			"target_name":"addon",
			"sources":["addon.cc"],
			"include_dirs":[
				"<!(node -e \"require('nan')\")"
			]
		}
	]
}
5.js源码

var addon = require('bindings')('addon');

addon(function(msg){
	console.log(msg[0]);
	console.log(msg[1]);
});
6.编译addon

cd到源码目录下

node-gyp configure build   
7.执行

cd 到源码目录下

node hello.js    






评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值