Node.js:来一打 C++ 扩展 🔍
死月著
北京:电子工业出版社, 2020
中文 [zh] · EPUB · 9.4MB · 2020 · 📘 非小说类图书 · 🚀/duxiu/lgli/zlib · Save
描述
本书讲解了如何在 Node.js 上写 C++ 的原生模块以供使用,包括且不仅限于一些 API 和原理的介绍,但是不包括 Node.js 的基础入门知识(如语法等)。目标是读者能用 C++ 写出 Node.js 原生模块来提高开发和运行效率。
备用文件名
zlib/Computers/Web Development/死月/Node.js:来一打 C++ 扩展_18202258.epub
备选标题
Node.js : 来一打C++扩展
备用出版商
Publishing House of Electronics Industry
备用版本
China, People's Republic, China
备用版本
Di 1 ban, Beijing, 2018
元数据中的注释
Bookmarks: p1 (p1): 1 Node.js的C++扩展前驱知识储备
p1-1 (p2): 1.1 Node js的模块机制
p1-1-1 (p2): 1.1.1 CommonJS的模块规范
p1-1-2 (p4): 1.1.2 Node js的模块
p1-1-3 (p9): 1.1.3 小结
p1-1-4 (p9): 1.1.4 参考资料
p1-2 (p9): 1.2 Node js的包机制
p1-2-1 (p9): 1.2.1 CommonJS的包规范
p1-2-2 (p13): 1.2.2 Node.js/NPM下的包
p1-2-3 (p16): 1.2.3 NPM与CNPM
p1-2-4 (p19): 1.2.4 小结
p1-2-5 (p19): 1.2.5 参考资料
p1-3 (p20): 1.3 Node.js依赖简介
p1-3-1 (p20): 1.3.1 Chrome V8
p1-3-2 (p25): 1.3.2 libuv
p1-3-3 (p28): 1.3.3 其他依赖
p1-3-4 (p30): 1.3.4 小结
p1-3-5 (p30): 1.3.5 参考资料
p1-4 (p31): 1.4 C++扩展开发的准备工作
p1-4-1 (p31): 1.4.1 编辑器/IDE
p1-4-2 (p36): 1.4.2 node-gyp
p1-4-3 (p54): 1.4.3 其他构建工具
p1-4-4 (p56): 1.4.4 小结
p1-4-5 (p56): 1.4.5 参考资料
p2 (p57): 2 C++模块原理简析
p2-1 (p57): 2.1 为什么要写C++模块
p2-1-1 (p57): 2.1.1 C++比JavaScript解释器高效
p2-1-2 (p72): 2.1.2 已有的C++轮子
p2-1-3 (p77): 2.1.3 小结
p2-1-4 (p77): 2.1.4 参考资料
p2-2 (p78): 2.2 什么是C++扩展
p2-2-1 (p78): 2.2.1 C++模块本质
p2-2-2 (p80): 2.2.2 Node js模块加载原理
p2-2-3 (p102): 2.2.3 小结
p2-2-4 (p103): 2.2.4 参考资料
p3 (p104): 3 Chrome V8基础
p3-1 (p104): 3.1 Node j s与Chrome V8
p3-2 (p105): 3.2 基本概念
p3-2-1 (p105): 3.2.1 内存机制
p3-2-2 (p108): 3.2.2 隔离实例(Isolate)
p3-2-3 (p109): 3.2.3 上下文(Context)
p3-2-4 (p110): 3.2.4 脚本(Script)
p3-2-5 (p110): 3.2.5 小结
p3-2-6 (p111): 3.2.6 参考资料
p3-3 (p111): 3.3 句柄(Handle)
p3-3-1 (p112): 3.3.1 本地句柄(Local)
p3-3-2 (p115): 3.3.2 持久句柄(Persistent)
p3-3-3 (p119): 3.3.3 永生句柄(Eternal)
p3-3-4 (p119): 3.3.4 待实本地句柄(Maybe Local)
p3-3-5 (p121): 3.3.5 小结
p3-3-6 (p121): 3.3.6 参考资料
p3-4 (p121): 3.4 句柄作用域
p3-4-1 (p122): 3.4.1 一般句柄作用域(Handle Scope)
p3-4-2 (p125): 3.4.2 可逃句柄作用域(Escapable Handle Scope)
p3-4-3 (p129): 3.4.3 小结
p3-4-4 (p129): 3.4.4 参考资料
p3-5 (p129): 3.5 上下文(Context)
p3-6 (p133): 3.6 模板(Template)
p3-6-1 (p133): 3.6.1 函数模板(Function Template)
p3-6-2 (p138): 3.6.2 对象模板(Object Template)
p3-6-3 (p144): 3.6.3 对象模板的访问器(Accessor)与拦截器(Interceptor)
p3-6-4 (p175): 3.6.4 对象模板的内置字段(Internal Field)
p3-6-5 (p183): 3.6.5 函数模板的继承(Inherit)
p3-6-6 (p188): 3.6.6 小结
p3-6-7 (p189): 3.6.7 参考资料
p3-7 (p189): 3.7 常用数据类型
p3-7-1 (p189): 3.7.1 基值(Value)
p3-7-2 (p194): 3.7.2 字符串(String)
p3-7-3 (p196): 3.7.3 数值类型
p3-7-4 (p196): 3.7.4 布尔类型(Boolean)
p3-7-5 (p196): 3.7.5 对象(Object)
p3-7-6 (p200): 3.7.6 函数(Function)
p3-7-7 (p202): 3.7.7 数组(Array)
p3-7-8 (p203): 3.7.8 JSON解析器
p3-7-9 (p203): 3.7.9 函数回调信息(Function Callback Info)
p3-7-10 (p204): 3.7.10 函数返回值(Return Value)
p3-7-11 (p204): 3.7.11 隔离实例(Isolate)
p3-7-12 (p205): 3.7.12 小结
p3-7-13 (p206): 3.7.13 参考资料
p3-8 (p206): 3.8 异常机制
p3-8-1 (p206): 3.8.1 try-catch
p3-8-2 (p209): 3.8.2 抛出异常
p3-8-3 (p211): 3.8.3 异常生成类(Exception)
p3-8-4 (p211): 3.8.4 小结
p3-8-5 (p211): 3.8.5 参考资料
p4 (p212): 4 C++扩展实战初探
p4-1 (p212): 4.1 binding.gyp
p4-1-1 (p213): 4.1.1 惊鸿一瞥
p4-1-2 (p213): 4.1.2 binding.gyp基础结构
p4-1-3 (p214): 4.1.3 GYP文件
p4-1-4 (p221): 4.1.4 常用字段
p4-1-5 (p228): 4.1.5 小结
p4-1-6 (p228): 4.1.6 参考资料
p4-2 (p229): 4.2 牛刀小试
p4-2-1 (p229): 4.2.1 又是Hello World
p4-2-2 (p232): 4.2.2 函数参数
p4-2-3 (p234): 4.2.3 回调函数
p4-2-4 (p238): 4.2.4 函数返回
p4-2-5 (p239): 4.2.5 小结
p4-2-6 (p240): 4.2.6 参考资料
p4-3 (p240): 4.3 循序渐进
p4-3-1 (p240): 4.3.1 C++与JavaScript类封装
p4-3-2 (p250): 4.3.2 实例化C++类封装对象的函数
p4-3-3 (p253): 4.3.3 将C++类封装对象传来传去
p4-3-4 (p255): 4.3.4 进程退出钩子
p4-3-5 (p259): 4.3.5 小结
p4-3-6 (p259): 4.3.6 参考资料
p5 (p260): 5 Node.js原生抽象——NAN
p5-1 (p260): 5.1 Node js原生模块开发方式的变迁
p5-1-1 (p260): 5.1.1 以不变应万变
p5-1-2 (p261): 5.1.2 时代在召唤
p5-1-3 (p267): 5.1.3 小结
p5-1-4 (p267): 5.1.4 参考资料
p5-2 (p267): 5.2 基础开发
p5-2-1 (p267): 5.2.1 什么是NAN
p5-2-2 (p269): 5.2.2 安装和配置
p5-2-3 (p270): 5.2.3 先睹为快——搭上NAN的快车
p5-2-4 (p276): 5.2.4 基础帮助函数和宏
p5-2-5 (p279): 5.2.5 忽略node_modules
p5-2-6 (p279): 5.2.6 小结
p5-2-7 (p280): 5.2.7 参考资料
p5-3 (p280): 5.3 JavaScript函数
p5-3-1 (p280): 5.3.1 函数参数类型
p5-3-2 (p282): 5.3.2 函数声明
p5-3-3 (p288): 5.3.3 函数设置
p5-3-4 (p296): 5.3.4 小结
p5-3-5 (p296): 5.3.5 参考资料
p5-4 (p296): 5.4 常用帮助类与函数
p5-4-1 (p296): 5.4.1 句柄相关
p5-4-2 (p298): 5.4.2 创建数据对象
p5-4-3 (p300): 5.4.3 与数据对象“玩耍”
p5-4-4 (p314): 5.4.4 封装一个类
p5-4-5 (p315): 5.4.5 异常处理
p5-4-6 (p315): 5.4.6 小结
p5-4-7 (p316): 5.4.7 参考资料
p5-5 (p316): 5.5 NAN中的异步机制
p5-5-1 (p316): 5.5.1 Nan::AsyncQueueWorker
p5-5-2 (p317): 5.5.2 Nan::Callback
p5-5-3 (p317): 5.5.3 Nan::AsyncWorker
p5-5-4 (p323): 5.5.4 Nan::AsyncProgressWorker
p5-5-5 (p327): 5.5.5 小结
p5-5-6 (p327): 5.5.6 参考资料
p6 (p328): 6 异步之旅——libuv
p6-1 (p329): 6.1 基础概念
p6-1-1 (p330): 6.1.1 事件循环
p6-1-2 (p333): 6.1.2 句柄(Handle)与请求(Request)
p6-1-3 (p335): 6.1.3 尝尝甜头
p6-1-4 (p340): 6.1.4 小结
p6-1-5 (p340): 6.1.5 参考资料
p6-2 (p341): 6.2 libuv的跨线程编程基础
p6-2-1 (p342): 6.2.1 libuv的线程
p6-2-2 (p347): 6.2.2 同步原语(Synchronization Primitive)
p6-2-3 (p355): 6.2.3 工作队列
p6-2-4 (p356): 6.2.4 小结
p6-2-5 (p357): 6.2.5 参考资料
p6-3 (p357): 6.3 跨线程通信
p6-3-1 (p357): 6.3.1 uv async t句柄
p6-3-2 (p358): 6.3.2 Watchdog半成品实战解析
p6-3-3 (p367): 6.3.3 Watchdog试运行
p6-3-4 (p368): 6.3.4 小结
p6-3-5 (p369): 6.3.5 参考资料
p7 (p370): 7 实战——文件监视器
p7-1 (p370): 7.1 准备工作
p7-1-1 (p370): 7.1.1 功能规划
p7-1-2 (p373): 7.1.2 文件系统监听库——efsw
p7-1-3 (p376): 7.1.3 小结
p7-1-4 (p376): 7.1.4 参考资料
p7-2 (p376): 7.2 核心设计
p7-2-1 (p377): 7.2.1 API设计
p7-2-2 (p377): 7.2.2 EFSWCore的血肉之躯
p7-2-3 (p381): 7.2.3 EFSWCore的灵魂
p7-2-4 (p385): 7.2.4 小结
p7-3 (p386): 7.3 编写JavaScript类
p7-3-1 (p386): 7.3.1 类的设计
p7-3-2 (p388): 7.3.2 核心逻辑
p7-3-3 (p391): 7.3.3 简单容错
p7-3-4 (p393): 7.3.4 小结
p7-4 (p393): 7.4 进一步完善
p7-4-1 (p393): 7.4.1 C++代码的完善
p7-4-2 (p398): 7.4.2 JavaScript代码的完善
p7-4-3 (p400): 7.4.3 小结
p8 (p401): 8 实战——现有包剖析
p8-1 (p401): 8.1 字符串哈希模块——Bling Hashes
p8-1-1 (p402): 8.1.1 文件设定
p8-1-2 (p403): 8.1.2 C++源码剖析
p8-1-3 (p408): 8.1.3 JavaScript 源码剖析
p8-1-4 (p409): 8.1.4 小结
p8-1-5 (p410): 8.1.5 参考资料
p8-2 (p410): 8.2 类Proxy包——Auto Object
p8-2-1 (p410): 8.2.1 Proxy
p8-2-2 (p412): 8.2.2 Auto Object使用范例
p8-2-3 (p415): 8.2.3 代码剖析
p8-2-4 (p424): 8.2.4 小结
p8-2-5 (p424): 8.2.5 参考资料
p9 (p425): 9 N-API——下一代Node.js C++扩展开发方式
p9-1 (p426): 9.1 浅尝辄止
p9-1-1 (p426): 9.1.1 实现一个Echo函数
p9-1-2 (p430): 9.1.2 尝试运行N-API扩展
p9-1-3 (p431): 9.1.3 向下兼容
p9-1-4 (p433): 9.1.4 N-API Package——C++封装
p9-1-5 (p433): 9.1.5 小结
p9-1-6 (p433): 9.1.6 参考资料
p9-2 (p433): 9.2 基本数据类型与错误处理
p9-2-1 (p433): 9.2.1 基本数据类型
p9-2-2 (p435): 9.2.2 与作用域及生命周期相关的数据类型
p9-2-3 (p438): 9.2.3 回调数据类型
p9-2-4 (p439): 9.2.4 错误处理
p9-2-5 (p441): 9.2.5 模块注册
p9-2-6 (p442): 9.2.6 小结
p9-2-7 (p442): 9.2.7 参考资料
p9-3 (p442): 9.3 对象与函数
p9-3-1 (p442): 9.3.1 对象
p9-3-2 (p448): 9.3.2 函数
p9-3-3 (p453): 9.3.3 类的封装
p9-3-4 (p455): 9.3.4 小结
p9-3-5 (p455): 9.3.5 参考资料
p1-1 (p2): 1.1 Node js的模块机制
p1-1-1 (p2): 1.1.1 CommonJS的模块规范
p1-1-2 (p4): 1.1.2 Node js的模块
p1-1-3 (p9): 1.1.3 小结
p1-1-4 (p9): 1.1.4 参考资料
p1-2 (p9): 1.2 Node js的包机制
p1-2-1 (p9): 1.2.1 CommonJS的包规范
p1-2-2 (p13): 1.2.2 Node.js/NPM下的包
p1-2-3 (p16): 1.2.3 NPM与CNPM
p1-2-4 (p19): 1.2.4 小结
p1-2-5 (p19): 1.2.5 参考资料
p1-3 (p20): 1.3 Node.js依赖简介
p1-3-1 (p20): 1.3.1 Chrome V8
p1-3-2 (p25): 1.3.2 libuv
p1-3-3 (p28): 1.3.3 其他依赖
p1-3-4 (p30): 1.3.4 小结
p1-3-5 (p30): 1.3.5 参考资料
p1-4 (p31): 1.4 C++扩展开发的准备工作
p1-4-1 (p31): 1.4.1 编辑器/IDE
p1-4-2 (p36): 1.4.2 node-gyp
p1-4-3 (p54): 1.4.3 其他构建工具
p1-4-4 (p56): 1.4.4 小结
p1-4-5 (p56): 1.4.5 参考资料
p2 (p57): 2 C++模块原理简析
p2-1 (p57): 2.1 为什么要写C++模块
p2-1-1 (p57): 2.1.1 C++比JavaScript解释器高效
p2-1-2 (p72): 2.1.2 已有的C++轮子
p2-1-3 (p77): 2.1.3 小结
p2-1-4 (p77): 2.1.4 参考资料
p2-2 (p78): 2.2 什么是C++扩展
p2-2-1 (p78): 2.2.1 C++模块本质
p2-2-2 (p80): 2.2.2 Node js模块加载原理
p2-2-3 (p102): 2.2.3 小结
p2-2-4 (p103): 2.2.4 参考资料
p3 (p104): 3 Chrome V8基础
p3-1 (p104): 3.1 Node j s与Chrome V8
p3-2 (p105): 3.2 基本概念
p3-2-1 (p105): 3.2.1 内存机制
p3-2-2 (p108): 3.2.2 隔离实例(Isolate)
p3-2-3 (p109): 3.2.3 上下文(Context)
p3-2-4 (p110): 3.2.4 脚本(Script)
p3-2-5 (p110): 3.2.5 小结
p3-2-6 (p111): 3.2.6 参考资料
p3-3 (p111): 3.3 句柄(Handle)
p3-3-1 (p112): 3.3.1 本地句柄(Local)
p3-3-2 (p115): 3.3.2 持久句柄(Persistent)
p3-3-3 (p119): 3.3.3 永生句柄(Eternal)
p3-3-4 (p119): 3.3.4 待实本地句柄(Maybe Local)
p3-3-5 (p121): 3.3.5 小结
p3-3-6 (p121): 3.3.6 参考资料
p3-4 (p121): 3.4 句柄作用域
p3-4-1 (p122): 3.4.1 一般句柄作用域(Handle Scope)
p3-4-2 (p125): 3.4.2 可逃句柄作用域(Escapable Handle Scope)
p3-4-3 (p129): 3.4.3 小结
p3-4-4 (p129): 3.4.4 参考资料
p3-5 (p129): 3.5 上下文(Context)
p3-6 (p133): 3.6 模板(Template)
p3-6-1 (p133): 3.6.1 函数模板(Function Template)
p3-6-2 (p138): 3.6.2 对象模板(Object Template)
p3-6-3 (p144): 3.6.3 对象模板的访问器(Accessor)与拦截器(Interceptor)
p3-6-4 (p175): 3.6.4 对象模板的内置字段(Internal Field)
p3-6-5 (p183): 3.6.5 函数模板的继承(Inherit)
p3-6-6 (p188): 3.6.6 小结
p3-6-7 (p189): 3.6.7 参考资料
p3-7 (p189): 3.7 常用数据类型
p3-7-1 (p189): 3.7.1 基值(Value)
p3-7-2 (p194): 3.7.2 字符串(String)
p3-7-3 (p196): 3.7.3 数值类型
p3-7-4 (p196): 3.7.4 布尔类型(Boolean)
p3-7-5 (p196): 3.7.5 对象(Object)
p3-7-6 (p200): 3.7.6 函数(Function)
p3-7-7 (p202): 3.7.7 数组(Array)
p3-7-8 (p203): 3.7.8 JSON解析器
p3-7-9 (p203): 3.7.9 函数回调信息(Function Callback Info)
p3-7-10 (p204): 3.7.10 函数返回值(Return Value)
p3-7-11 (p204): 3.7.11 隔离实例(Isolate)
p3-7-12 (p205): 3.7.12 小结
p3-7-13 (p206): 3.7.13 参考资料
p3-8 (p206): 3.8 异常机制
p3-8-1 (p206): 3.8.1 try-catch
p3-8-2 (p209): 3.8.2 抛出异常
p3-8-3 (p211): 3.8.3 异常生成类(Exception)
p3-8-4 (p211): 3.8.4 小结
p3-8-5 (p211): 3.8.5 参考资料
p4 (p212): 4 C++扩展实战初探
p4-1 (p212): 4.1 binding.gyp
p4-1-1 (p213): 4.1.1 惊鸿一瞥
p4-1-2 (p213): 4.1.2 binding.gyp基础结构
p4-1-3 (p214): 4.1.3 GYP文件
p4-1-4 (p221): 4.1.4 常用字段
p4-1-5 (p228): 4.1.5 小结
p4-1-6 (p228): 4.1.6 参考资料
p4-2 (p229): 4.2 牛刀小试
p4-2-1 (p229): 4.2.1 又是Hello World
p4-2-2 (p232): 4.2.2 函数参数
p4-2-3 (p234): 4.2.3 回调函数
p4-2-4 (p238): 4.2.4 函数返回
p4-2-5 (p239): 4.2.5 小结
p4-2-6 (p240): 4.2.6 参考资料
p4-3 (p240): 4.3 循序渐进
p4-3-1 (p240): 4.3.1 C++与JavaScript类封装
p4-3-2 (p250): 4.3.2 实例化C++类封装对象的函数
p4-3-3 (p253): 4.3.3 将C++类封装对象传来传去
p4-3-4 (p255): 4.3.4 进程退出钩子
p4-3-5 (p259): 4.3.5 小结
p4-3-6 (p259): 4.3.6 参考资料
p5 (p260): 5 Node.js原生抽象——NAN
p5-1 (p260): 5.1 Node js原生模块开发方式的变迁
p5-1-1 (p260): 5.1.1 以不变应万变
p5-1-2 (p261): 5.1.2 时代在召唤
p5-1-3 (p267): 5.1.3 小结
p5-1-4 (p267): 5.1.4 参考资料
p5-2 (p267): 5.2 基础开发
p5-2-1 (p267): 5.2.1 什么是NAN
p5-2-2 (p269): 5.2.2 安装和配置
p5-2-3 (p270): 5.2.3 先睹为快——搭上NAN的快车
p5-2-4 (p276): 5.2.4 基础帮助函数和宏
p5-2-5 (p279): 5.2.5 忽略node_modules
p5-2-6 (p279): 5.2.6 小结
p5-2-7 (p280): 5.2.7 参考资料
p5-3 (p280): 5.3 JavaScript函数
p5-3-1 (p280): 5.3.1 函数参数类型
p5-3-2 (p282): 5.3.2 函数声明
p5-3-3 (p288): 5.3.3 函数设置
p5-3-4 (p296): 5.3.4 小结
p5-3-5 (p296): 5.3.5 参考资料
p5-4 (p296): 5.4 常用帮助类与函数
p5-4-1 (p296): 5.4.1 句柄相关
p5-4-2 (p298): 5.4.2 创建数据对象
p5-4-3 (p300): 5.4.3 与数据对象“玩耍”
p5-4-4 (p314): 5.4.4 封装一个类
p5-4-5 (p315): 5.4.5 异常处理
p5-4-6 (p315): 5.4.6 小结
p5-4-7 (p316): 5.4.7 参考资料
p5-5 (p316): 5.5 NAN中的异步机制
p5-5-1 (p316): 5.5.1 Nan::AsyncQueueWorker
p5-5-2 (p317): 5.5.2 Nan::Callback
p5-5-3 (p317): 5.5.3 Nan::AsyncWorker
p5-5-4 (p323): 5.5.4 Nan::AsyncProgressWorker
p5-5-5 (p327): 5.5.5 小结
p5-5-6 (p327): 5.5.6 参考资料
p6 (p328): 6 异步之旅——libuv
p6-1 (p329): 6.1 基础概念
p6-1-1 (p330): 6.1.1 事件循环
p6-1-2 (p333): 6.1.2 句柄(Handle)与请求(Request)
p6-1-3 (p335): 6.1.3 尝尝甜头
p6-1-4 (p340): 6.1.4 小结
p6-1-5 (p340): 6.1.5 参考资料
p6-2 (p341): 6.2 libuv的跨线程编程基础
p6-2-1 (p342): 6.2.1 libuv的线程
p6-2-2 (p347): 6.2.2 同步原语(Synchronization Primitive)
p6-2-3 (p355): 6.2.3 工作队列
p6-2-4 (p356): 6.2.4 小结
p6-2-5 (p357): 6.2.5 参考资料
p6-3 (p357): 6.3 跨线程通信
p6-3-1 (p357): 6.3.1 uv async t句柄
p6-3-2 (p358): 6.3.2 Watchdog半成品实战解析
p6-3-3 (p367): 6.3.3 Watchdog试运行
p6-3-4 (p368): 6.3.4 小结
p6-3-5 (p369): 6.3.5 参考资料
p7 (p370): 7 实战——文件监视器
p7-1 (p370): 7.1 准备工作
p7-1-1 (p370): 7.1.1 功能规划
p7-1-2 (p373): 7.1.2 文件系统监听库——efsw
p7-1-3 (p376): 7.1.3 小结
p7-1-4 (p376): 7.1.4 参考资料
p7-2 (p376): 7.2 核心设计
p7-2-1 (p377): 7.2.1 API设计
p7-2-2 (p377): 7.2.2 EFSWCore的血肉之躯
p7-2-3 (p381): 7.2.3 EFSWCore的灵魂
p7-2-4 (p385): 7.2.4 小结
p7-3 (p386): 7.3 编写JavaScript类
p7-3-1 (p386): 7.3.1 类的设计
p7-3-2 (p388): 7.3.2 核心逻辑
p7-3-3 (p391): 7.3.3 简单容错
p7-3-4 (p393): 7.3.4 小结
p7-4 (p393): 7.4 进一步完善
p7-4-1 (p393): 7.4.1 C++代码的完善
p7-4-2 (p398): 7.4.2 JavaScript代码的完善
p7-4-3 (p400): 7.4.3 小结
p8 (p401): 8 实战——现有包剖析
p8-1 (p401): 8.1 字符串哈希模块——Bling Hashes
p8-1-1 (p402): 8.1.1 文件设定
p8-1-2 (p403): 8.1.2 C++源码剖析
p8-1-3 (p408): 8.1.3 JavaScript 源码剖析
p8-1-4 (p409): 8.1.4 小结
p8-1-5 (p410): 8.1.5 参考资料
p8-2 (p410): 8.2 类Proxy包——Auto Object
p8-2-1 (p410): 8.2.1 Proxy
p8-2-2 (p412): 8.2.2 Auto Object使用范例
p8-2-3 (p415): 8.2.3 代码剖析
p8-2-4 (p424): 8.2.4 小结
p8-2-5 (p424): 8.2.5 参考资料
p9 (p425): 9 N-API——下一代Node.js C++扩展开发方式
p9-1 (p426): 9.1 浅尝辄止
p9-1-1 (p426): 9.1.1 实现一个Echo函数
p9-1-2 (p430): 9.1.2 尝试运行N-API扩展
p9-1-3 (p431): 9.1.3 向下兼容
p9-1-4 (p433): 9.1.4 N-API Package——C++封装
p9-1-5 (p433): 9.1.5 小结
p9-1-6 (p433): 9.1.6 参考资料
p9-2 (p433): 9.2 基本数据类型与错误处理
p9-2-1 (p433): 9.2.1 基本数据类型
p9-2-2 (p435): 9.2.2 与作用域及生命周期相关的数据类型
p9-2-3 (p438): 9.2.3 回调数据类型
p9-2-4 (p439): 9.2.4 错误处理
p9-2-5 (p441): 9.2.5 模块注册
p9-2-6 (p442): 9.2.6 小结
p9-2-7 (p442): 9.2.7 参考资料
p9-3 (p442): 9.3 对象与函数
p9-3-1 (p442): 9.3.1 对象
p9-3-2 (p448): 9.3.2 函数
p9-3-3 (p453): 9.3.3 类的封装
p9-3-4 (p455): 9.3.4 小结
p9-3-5 (p455): 9.3.5 参考资料
备用描述
Ben shu yi Chrome V8 de zhi shi zuo wei ji chu,Pei he GYP de yi xie nei rong,Jiang jie ru he shi yong Node.js ti gong de yi xie API lai bian xie qi C++ de yuan sheng kuo zhan.Ci wai,Zai hou xu de jin jie zhang jie zhong,Hai jie shao yuan sheng chou xiang NAN yi ji yu yi bu xiang guan de libuv zhi shi,Zui hou fu yi ji ge shi li lai jia shen li jie
备用描述
本书以Chrome V8的知识作为基础,配合GYP的一些内容,讲解如何使用Node.js提供的一些API来编写其C++的原生扩展.此外,在后续的进阶章节中,还介绍原生抽象NAN以及与异步相关的libuv知识,最后辅以几个实例来加深理解
开源日期
2021-11-24
🚀 快速下载
成为会员以支持书籍、论文等的长期保存。为了感谢您对我们的支持,您将获得高速下载权益。❤️
如果您在本月捐款,您将获得双倍的快速下载次数。
🐢 低速下载
由可信的合作方提供。 更多信息请参见常见问题解答。 (可能需要验证浏览器——无限次下载!)
- 低速服务器(合作方提供) #1 (稍快但需要排队)
- 低速服务器(合作方提供) #2 (稍快但需要排队)
- 低速服务器(合作方提供) #3 (稍快但需要排队)
- 低速服务器(合作方提供) #4 (稍快但需要排队)
- 低速服务器(合作方提供) #5 (无需排队,但可能非常慢)
- 低速服务器(合作方提供) #6 (无需排队,但可能非常慢)
- 低速服务器(合作方提供) #7 (无需排队,但可能非常慢)
- 低速服务器(合作方提供) #8 (无需排队,但可能非常慢)
- 低速服务器(合作方提供) #9 (无需排队,但可能非常慢)
- 下载后: 在我们的查看器中打开
所有选项下载的文件都相同,应该可以安全使用。即使这样,从互联网下载文件时始终要小心。例如,确保您的设备更新及时。
外部下载
-
对于大文件,我们建议使用下载管理器以防止中断。
推荐的下载管理器:JDownloader -
您将需要一个电子书或 PDF 阅读器来打开文件,具体取决于文件格式。
推荐的电子书阅读器:Anna的档案在线查看器、ReadEra和Calibre -
使用在线工具进行格式转换。
推荐的转换工具:CloudConvert和PrintFriendly -
您可以将 PDF 和 EPUB 文件发送到您的 Kindle 或 Kobo 电子阅读器。
推荐的工具:亚马逊的“发送到 Kindle”和djazz 的“发送到 Kobo/Kindle” -
支持作者和图书馆
✍️ 如果您喜欢这个并且能够负担得起,请考虑购买原版,或直接支持作者。
📚 如果您当地的图书馆有这本书,请考虑在那里免费借阅。
下面的文字仅以英文继续。
总下载量:
“文件的MD5”是根据文件内容计算出的哈希值,并且基于该内容具有相当的唯一性。我们这里索引的所有影子图书馆都主要使用MD5来标识文件。
一个文件可能会出现在多个影子图书馆中。有关我们编译的各种数据集的信息,请参见数据集页面。
有关此文件的详细信息,请查看其JSON 文件。 Live/debug JSON version. Live/debug page.