使用Visual Studio搭建Node C++ Addon 开发和调试环境

本文逐步讲述了如何配置Visual Studio 2017来使得能够在VS中对源生的NodeJS C++ Addon进行调试。

在开始之前,首先保证你的电脑中安装了:

1.Visual Studio 2017 (安装组件“使用C++的桌面开发”)
2.Git
3.python 2.x (用于编译node)

如果没有以上软件,请先去相关网站下载并安装。

下面开始我们的配置。

第一步 获取并编译Debug版本的Node

1.使用Git从Github获取Node源码 (此处使用cmd示例,命令为git clone https://github.com/nodejs/node)

2.切换分支到稳定版本分支(目前为v9.x) git checkout v9.x
3.使用cmd在node工作文件夹下进行build
命令为vcbuild.bat Debug x64 (32位系统请改为x86)

4.耐心等待编译完成(大概耗时约10分钟,这段时间里面可以继续第二步)

第二步 配置Visual Studio编译Node C++ Addon

1.首先创建一个空项目

2. 添加代码(此处我们用https://nodejs.org/api/addons.html上的官方hello作为示例)

添加完代码我们可以发现会有很多红色波浪的错误提示,这是因为我们还没有将所需要的头文件添加到include Path当中,接下来我们就要对其进行配置。
3.首先我们注意一下窗口上部的配置选择,默认是x86,由于我们待会使用的是64位node,所以首先要把它改成x64,将它作为活动的配置

4.然后我们选中当前的solution,然后按上边那个扳手按钮开启配置

5.在弹出的配置管理器中,首先在常规一栏,我们更改目标文件名为.node(因为这是node c++ addon的默认扩展名), 配置类型为dll动态链接库

6.接下来在左边列表中选择VC++ 目录,选择包含目录,点击右边的下拉箭头中的<编辑。
我们需要把编译node c++ addon所需的头文件文件夹加入这个目录列表中。一般来说,node c++ addon所需的目录为:

$(NODE_SRC)为第一步中下载的node源代码文件夹,

……

使用libuv开发C++ Addon实现Nodejs子进程同步通信

Electron

使用过Electron的同志们都知道,Electron中的渲染进程(renderer process) 和主进程间,可以使用ipc模块同时使用两种方法进行通信:

  1. 异步通信,渲染进程不阻塞,使用监听进行返回:
  2. 同步通信,渲染进程阻塞,从主进程得到返回值后将返回值直接作为该通信调用的返回值

而nodejs的源生childProcess模块fork出的非阻塞性子进程只

……

JS for 循环的“优化”

今天在阅读angularjs 1.x源码的时候,发现作者写js的for循环时,往往采用的是定义两个变量的写法:

而我们在平常写到循环时,往往是使用的更为直观的方法

从逻辑和语法上来说,这两种方法完全等同。甚至angular作者的写法更有一种脱裤子放屁的多余感。

但是为什么实际上第一种方法才是更被推崇的呢?

原因是Array.length函数

……