process.dlopen => DLOpen https://github.com/nodejs/node/blob/master/src/node.cc#L2438
uv_dlopen() —> mp
check: mp.nm_version is NODE_MODULE_VERSION
mp.nm_flag not contains NM_F_BUILTIN
one should exists and be called:
nm_context_register_func(exports, module, env->context(), mp.nm_priv)
nm_register_func(exports, module, mp.nm_priv)
市面上讲实战,讲怎么调用 api 的书太多了吧,朴老师的书算是难得的讲解深入底层原理的书了
来自酷炫的 CNodeMD
那可去试试 Pedro Teixera 的 Hands on Node.js。中译本似乎叫《Node.js 实战》,不过注意作者,用这个名字的很多。
@hyj1991 看过《了不起的Node.js》了,然后再来看看这个,发现难度还是很高很高(=_=)
来自酷炫的 CNodeMD
@pinxue 这本涉及底层原理了吗
来自酷炫的 CNodeMD
@q86002618 看看目录自己判断吧,关注 Node 本身的基本概念和自带库,比较适合平时用框架比较多的在深入代码实现前看看。
@pinxue 当当没搜到这本书,豆瓣也没有,不过倒是找到这个作者另外一本书《Node.js高级编程》,看目录确实是讲的Node.js本身的东西,不知道你说的是不是这一本?
来自酷炫的 CNodeMD
@q86002618
@pinxue 确实有这么一本书,但是翻遍淘宝 京东 当当 豆瓣 亚马逊 孔夫子旧书网都没有😭
来自酷炫的 CNodeMD
@pinxue 应该停产了
来自酷炫的 CNodeMD
你们学校没有c和c++课程么。。
来自酷炫的 CNodeMD
@vanishcode 不是,是太久没碰C++了。这几天耐心看慢慢看懂了,主要是有点怕C/C++,所以看到瞬间有点胆怯
来自酷炫的 CNodeMD
@q86002618 想了解跟多 Node.js 与 C++ 搞基的内容,可以期待下我正在写的书,预计八月份完稿。《Node.js:来一打 C++ 扩展》
@xadillax (ง •̀_•́)ง加油,期待
来自酷炫的 CNodeMD
@q86002618 那书貌似是下架了……
理解模块加载,其实完全不需要知道 native plugin 是怎么生产出来的,顺着 module.js 看下去就好。这是我以前的笔记:
至于原生模块的编写和编译,https://github.com/workshopper/goingnative 这个node-gyp教程挺不错的,顺着下来上手能写,再去看实现细节就容易了。不过,教程没有解释跟 v8 vm 交互时涉及到的js对象模型,得另找文章看。
@pinxue 谢谢前辈
来自酷炫的 CNodeMD
@pinxue 我好像都不记得自己校对过这本书。。晕
@alsotang 可能是那个 alsotang 不是你
@fengmk2 这本书网上都搜不到。。奇怪。这三个作者可能由于是中文名所以我也不熟悉
@alsotang 都忘了什么时候在 kindle 里收的,现在啥地方都找不到,也是醉了…… 好在英文版还在,感兴趣的可以去 https://leanpub.com/hands-on-nodejs 看