nodejs 源码浅析(二)——核心模块编译加载原理 模块加载原理nodejs中,一共有四种类型的模块,C++核心模块(内建模块),js核心模块,C++用户模块,js用户模块。这部分来分别探讨下这些模块的编译加载流程。问题:1.require、exports、module这些对象用户没有声明过,但用户还是可以直接用require(),exports,这是为什么?2.引入别的模块的流程如何? 1.js核心模块加载原理每个js模块都是一个文件,一个文件一个模块,在js代码中就是一个Module对象。至于那些整个包构成的模块,也是有一个对外的文件,如果没有指定默认是index.js作为出口文件,该文件内部又会使用require去包含其它的文件。 Mar 12 Tech nodejs Comments Word Count: 16k(words) Read Count: 57 mins.(minutes)
nodejs 源码浅析(一)——进程启动过程 项目文件结构 node项目结构比较简单,主要是两个文件夹,src和lib。其中src文件夹是node的C++源文件所在的目录,里面是进程的入口以及C++核心模块的代码。lib文件夹是js核心模块所在的目录,在编译的时候会使用v8自带的js2c.py(在tools目录下)将这些js代码编译成c代码,然后再编译进二进制可执行文件中。 Mar 5 Tech nodejs Comments Word Count: 5.7k(words) Read Count: 21 mins.(minutes)
Nodejs 调用 C++(addon的学习) 先来看一段略有脑洞的js代码: 12345678var geek = require('GeekIt');console.log(geek);console.log(geek());console.log(geek()());console.log(geek()()());console.log(geek()()()());console.log(geek()()()()());console.log(geek()()()()()()); Mar 2 Tech c++, nodejs Comments Word Count: 11k(words) Read Count: 41 mins.(minutes)
红黑树实现 闲来无事,自己实现一个红黑树玩玩,顺便加深一下红黑树的理解实现了红黑树的构造操作,删除节点留待日后更新贴上代码: Nov 23 Tech c++, 数据结构 Comments Word Count: 27k(words) Read Count: 1:38(minutes)