Node.js c++ 扩展之HelloWorld
测试环境
vs:vs2017
node.js:9.9.6
相关地址
官方文档对应地址:https://www.nodejs.org/api/addons.html
官方案例对应地址:https://www.github.com/nodejs/node-addon-examples
安装所需版本的Node.js
下载并且安装Node.js,在官网下载安装包即可。如果不想用最新版本,可以在https://www.nodejs.org/dist/下载别的版本。
安装Python2.7
安装Python2.7后,打开CMD,运行npm config set python python2.7。
安装gyp
以管理员模式打开CMD,运行npm install -g node-gyp,即可安装。 关于gyp可以参考https://github.com/nodejs/node-gyp#installation,里面有相关的安装需求说明。
编写代码以及配置文件
这个请参考官方文档。我这里直接以官方案例的HelloWorld为例。
打开CMD,切换目录至代码目录
1_hello_world 下有好几个文件夹,我选择了node_0.12,也就是说要切换到这个文件夹下。其中binding.gyp文件为配置文件。hello.cc是我们写插件代码的地方。hello.js用于测试。
运行node-gyp configure,如果配置文件没错的话,就会出现一个目录build,里面是VS的工程文件,你就可以使用VS进行编译了,当然也可以运行node-gyp build来编译
修改JS文件以及测试
将编译完的hello.node复制到代码所在目录(node_0.12)。
编辑hello.js文件,将
var addon = require('bindings')('hello');
改成
var addon = require('./hello.node');
这里的测试代码是远古版本的代码,所以需要修改。
之后开始测试,打开CMD,切换到hello.js所在目录,运行node hello.js,如果没有出问题,cmd就会输出world字符。
注意
NODE_MODULE(hello, init)中的hello是模块名,需要与文件名保持一致,不然编译没问题,运行时会出错。因为在require('./hello.node')时,既去找相应的文件,也匹配对应的MODULE。