位置: 编程技术 - 正文

使用Node.js为其他程序编写扩展的基本方法(nodejs如何使用)

编辑:rootadmin

推荐整理分享使用Node.js为其他程序编写扩展的基本方法(nodejs如何使用),希望有所帮助,仅作参考,欢迎阅读内容。

文章相关热门搜索词:node.js的使用场景,node.js的使用场景,node如何使用,如何使用node.js,node.js用途,如何使用node.js,node.js用途,如何使用node.js,内容如对您有帮助,希望把文章链接给更多的朋友!

准备开始

首先我们用下面的目录结构来创建一个节点通知(node-notify)文件夹.

这个看起来很漂亮的tree 用通用的 tree 生成.

现在让我来创建测试脚本demo.js 和决定我们扩展的API前期看起来应该像:

编写我们的Node.js扩展Init方法

为了创建一个Node.js扩展,我们需要编写一个继承node::ObjectWrap的C++类。 ObjectWrap 实现了让我们更容易与Javascript交互的公共方法

我们先来编写类的基本框架:

现在,我们必须把下面的代码编写到我们的Init()方法中:

声明构造函数,并将其绑定到我们的目标变量。var n = require("notification");将绑定notification() 到 n:n.notification().

声明属性:n.title 和n.icon.

声明原型方法:n.send() 现在我们的Init()方法看起来应该是这样的: 剩下要做的就是编写我们在Init方法中用的C++方法:New,GetTitle,SetTitle,GetIcon,SetIcon,Send

构造器方法: New()

New() 方法创建了我们自定义类的新实例(一个 Gtknotify 对象),并设置一些初始值,然后返回该对象的 JavaScript 处理。这是 JavaScript 使用 new 操作符调用构造函数的期望行为。

下面主要是一些样板代码,可以归结为 C++ 和 JavaScript (v8) 之间的值转换。

原型方法: Send()

首先我们抽取 C++ 对象的 this 引用,然后使用对象的属性来构建通知并显示。

使用Node.js为其他程序编写扩展的基本方法(nodejs如何使用)

编译扩展

node-waf 是一个构建工具,用来编译 Node 的扩展,这是 waf 的基本封装。构建过程可通过名为 wscript 的文件进行配置。

现在我们已经准备好要开始构建了,在顶级目录下运行如下命令:

node-waf configure && node-waf build

如果一切正常,我们将得到编译过的扩展,位于:./build/default/gtknotify.node ,来试试:

上述的代码将在你的屏幕右上方显示一个通知信息。

打成npm包

这是非常酷的, 但是怎样与Node社区分享你的努力的成果呢&#; 这才是npm主要的用途: 使它更加容易扩展和分发.

打npm的扩展包是非常简单的. 你所要做的就是在你的顶级目录中创建一个包含你的扩展信息的文件package.json :

关于package.json 格式的更多细节, 可以通过 npm help json 获取文档. 注意 大多数字段都是可选的.

你现在可以在你的顶级目录中通过运行npm install 来安装你的新的npm包了. 如果一切顺利的话, 应该可以简单的加载你的扩展 var notify = require('你的包名');. 另外一个比较有用的命令式 npm link 通过这个命令你可以创建一个到你开发目录的链接,当你的代码发生变化时不必每次都去安装/卸载.

假设你写了一个很酷的扩展, 你可能想要在中央npm库发布到网上. 首先你要先创建一个账户:

下一步, 回到你的根目录编码并且运行:

就是这样, 你的包现在已经可以被任何人通过npm install 你的包名命令来安装了.

Windows系统下Node.js的简单入门教程 随着近日Paypal和Netflix宣告迁移到Node.js,服务器端Javascript平台已经证明其自身在企业领域的价值.这对于Node来说是一小步,对于Javascript而言却是一大跨越

充分发挥Node.js程序性能的一些方法介绍 一个Node.JS的进程只会运行在单个的物理核心上,就是因为这一点,在开发可扩展的服务器的时候就需要格外的注意。因为有一系列稳定的API,加上原生

使用Meteor配合Node.js编写实时聊天应用的范例 我经常见到被拿来与Derby.js做比较的框架是Meteor.js.与Derby相似的是,它也能在多个客户端下实时更新views,尽管做法上可能跟Derby有点不同.Derby可以较容易的

标签: nodejs如何使用

本文链接地址:https://www.jiuchutong.com/biancheng/377983.html 转载请保留说明!

上一篇:使用Raygun对Node.js应用进行错误处理的方法

下一篇:Windows系统下Node.js的简单入门教程(windows node.js)

  • 扣非净利润和净利润的区别举例说明
  • 总额法和净额法会计分录对比
  • 生育津贴是否需要申报免税所得
  • 工商注册经营部和公司的区别
  • 没有增值税专用发票开具证明
  • 小企业会计准则2023电子版
  • 食堂临聘人员的管理、考核
  • 塔吊基础属于哪一类
  • 财务报表中利润怎么算
  • 当月减少的固定资产当月停止折旧
  • 核定征收企业有利润如何注销税务登记
  • 发票收到以后必须查验吗
  • 生产企业出口退税退的是哪部分的税
  • 税局如何查无票收入
  • 城市生活垃圾处理费应该交吗
  • 什么情况下要办居住证
  • 公司对公账户可以转私人账户多久到账
  • 企业所得税预缴税款表怎么填
  • 投资收益科目应用
  • 持有至到期投资在资产负债表怎么填
  • 收到其他与经营活动有关的现金减少
  • 企业应收是什么意思
  • 如何接收银行承兑
  • 计提员工社保拿什么做原始凭证?
  • 办理企业土地证要多少钱
  • 税控系统服务费怎么抵扣
  • 非贸易企业代扣代缴增值税和附加税如何做账?
  • 营业范围是销售范围吗
  • quicktimeplayer.exe - quicktimeplayer是什么进程 有什么用
  • 公司债务转移的法律规定
  • kb4586853更新
  • PHP:Memcached::deleteMulti()的用法_Memcached类
  • 将现金存入银行,登记银行存款日记账的依据一般是
  • 拉贾安帕特群岛地图中文版
  • 手续费在银行系统哪里查
  • PHP面向对象程序设计
  • Vue中 Vue-Baidu-Map基本使用
  • 固定成本又称什么成本
  • 金税盘中的发票修复是什么意思
  • 个人出租租房交什么税
  • 研发费用属于什么成本
  • python自学资料
  • 辞职单位补偿标准
  • 占地面积法如何分摊土地成本
  • 开具利息收入发票需不需要有经营范围
  • 增值税发票有哪些项目
  • mysql数据库如何升级
  • 固定资产评估减值还是升值
  • 农业种植补贴需要审批吗
  • 收到存款利息属于资金周转吗
  • 代缴社保的好处有哪些
  • 进项税红字发票怎么样申报
  • 申报系统中印花税报表怎么填
  • 新单位怎么建账
  • sql server高级应用
  • 获得sql数据库信息的方法
  • cmd shutdown命令
  • win8更新win8.1
  • win10系统优酷播放不了
  • xp系统删除文件反应很慢
  • 怎么关闭windows更新提示
  • 如何切换shell
  • linux lsof命令详解
  • win10 u盘写保护
  • gnaupdaemon.exe是什么
  • 2015.6.28开始写博客记录cocos2dx学习历程
  • 通过扣缴义务人申报和综合所得年度自行申报
  • math和maths哪个对
  • linux rpm包怎么安装
  • cmd运行指令闪黑框
  • css用什么写
  • jquery追加节点
  • Node.js中的核心模块包括哪些内容?
  • linux怎么使用shell脚本
  • unity射击游戏完整功能代码
  • 国家对高校食堂的最新管理规定
  • 开票系统怎么设置默认税率
  • 申请电子发票需要去税务局吗
  • 税控盘如何分配发票
  • 亳州自来水缴费
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

    网站地图: 企业信息 工商信息 财税知识 网络常识 编程技术

    友情链接: 武汉网站建设