node.js addons development Prerequisite knowledgement/node.js插件开发预备知识

如果想在node.js平台上进行更深层次的开发,必须了解和熟悉node.js的addon开发。正如node.js官方网站上的addon开发文档所描述的那样,开发addon所需的API及知识背景非常复杂。但我认为开发addon需要一个渐进的过程。在经历过一个学习过程后,进行addon开发就会是一个水到渠成的事。相较简单了解了node.js就进行addon开发,那会容易很多。大致的学习路线我觉得应该是这样:

学习javascript语言。

了解V8的基本概念。https://developers.google.com/v8/,这个网站提供了这些信息。

学习node.js。入门中文文档当属InfoQ的《深入浅出Node.js》。


 

一、例子

下面是一个很好的例子,功能很简单就是在控制台下输出“world”字串。这个简单的示例可以用js和addon两种方式实现。这样我们就能找出C++代码中与js代码中一一对应的部分,进而更好地理解addon开发模型。

首先说明js示例。将下面这些代码放置在一个单独的js文件中,例如a.js。

module.exports.hello = function() { return 'world'; };
然后在node中这样使用它。

var a = require('a.js');
console.log(a.hello());

下面再来说明addon实现时的代码。

#include <node.h>
#include <v8.h>

using namespace v8;

Handle<Value> Method(const Arguments& args) {
  HandleScope scope;
  return scope.Close(String::New("world"));
}

void init(Handle<Object> exports) {
  exports->Set(String::NewSymbol("hello"), FunctionTemplate::New(Method)->GetFunction());
}

NODE_MODULE(hello, init)

node中这样使用这个addon

var a = require('hello.node');
console.log(a.hello());

 


 

二、exports vs module.exports

exports与module.exports的区别。后者可以在require返回的对象上直接加'()'使用。前者必须加'.'再跟一个名称。

参考文章:
http://nodejs.org/docs/latest/api/modules.html

http://openmymind.net/2012/2/3/Node-Require-and-Exports/

http://blog.csdn.net/danhuang2012/article/details/7676061

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值