C++编写Node.js插件(Addon)
来源:互联网 发布:知乎 皇族内阁 编辑:程序博客网 时间:2024/05/17 04:14
Google V8引擎的性能无用质疑,不过相对C/C++而言,还是有差距的,毕竟JavaScript是脚本语言。对于性能要求苛刻的可以考虑C++编写,本文介绍如何使用C++编写Node.js插件。
第一步、编写C++代码
1 // hello.cc 2 #include <node.h> 3 4 namespace demo { 5 6 using v8::FunctionCallbackInfo; 7 using v8::Isolate; 8 using v8::Local; 9 using v8::Object;10 using v8::String;11 using v8::Value;12 13 void Method(const FunctionCallbackInfo<Value>& args) {14 Isolate* isolate = args.GetIsolate();15 args.GetReturnValue().Set(String::NewFromUtf8(isolate, "world"));16 }17 18 void init(Local<Object> exports) {19 NODE_SET_METHOD(exports, "hello", Method);20 }21 22 NODE_MODULE(addon, init)23 24 } // namespace demo
第二部、编写构建脚本building.gyp文件
{ "targets": [ { "target_name": "addon", "sources": [ "hello.cc" ] } ]}
第三部、编写package.json
可以通过npm init模板生成。
{ "name": "node", "version": "1.0.0", "description": "", "main": "test.js", "dependencies": {}, "devDependencies": {}, "scripts": { "test": "echo \"Error: no test specified\" && exit 1", "install": "node-gyp rebuild" }, "author": "", "license": "ISC", "gypfile": true}
第四部、安装
npm install
系统需要安装python工具,下载地址:https://www.python.org/downloads/release/python-2712/
第五步、测试运行
// hello.jsconst addon = require('./build/Release/addon');console.log(addon.hello()); // 'world'
完整代码参考:https://git.oschina.net/zhujf21st/node-cc.git
阅读全文
0 0
- C++编写Node.js插件(Addon)
- Node.js 添加 C-C++ Addon
- Node.js 添加 C-C++ Addon
- Node.js 添加 C-C++ Addon
- Node.js 添加 C-C++ Addon
- Node.js 添加 C-C++ Addon
- Node.js Addon(1)
- Node.js Addon 返回数组
- c++编写node的addon(3) --向addon传参
- c++编写node的addon(4) --callback
- node.js addon osg binding 2
- XBMC插件addon.xml编写说明
- c++编写node的addon(2) --应用nan和bindings
- c++编写node的addon(5) --object 工厂
- c++编写node的addon(6) --函数工厂
- c++编写node的addon(7) --object wrap
- c++编写node的addon(8) --factory wrap
- c++编写node的addon(9) --pass wrapped
- (转)关于尾递归的解释
- 何为Monad
- iperf3已不再支持双工模式测试
- Nginx报错403 forbidden (13: Permission denied)的解决办法
- Node.js中如何处理耗时长的任务
- C++编写Node.js插件(Addon)
- 服务核心
- 学习scala: Hello World
- unity简易字符雨材质
- 将一个文件分割(1M)和合并
- 如何提升Node执行效率
- 2017年执业药师《药学专业知识(二)》考题+答案
- 3. Longest Substring Without Repeating Characters
- 服务核心