- ISBN:9787115542373
- 装帧:一般胶版纸
- 册数:暂无
- 重量:暂无
- 开本:16开
- 页数:244
- 出版时间:2020-12-01
- 条形码:9787115542373 ; 978-7-115-54237-3
本书特色
适读人群 :计算机、软件相关专业学生,适合零售1.从零开始学习开发完整可用的项目,掌握语言细节并获得实际经验。 2.以实际应用为背景,阐述Node.js在实际项目中的定位和潜在的陷阱。 3.适合没有Node.js经验的读者,旨在快速上手到独立开发小型应用
内容简介
本书跟随了Node.js的标准与行业的发展趋势,在介绍新标准与新技术的同时兼顾了理论基础和实际应用,主要内容分为基础和应用两部分,基础部分内容包含了Node.js环境配置,npm项目管理,JavaScript语法基础,Node.js基本模块的原理与使用,异步代码的编写与组织,应用部分包含了网络编程,桌面应用开发以及测试和调试。 本书讲解与示例并重,由浅入深地剖析了Node.js模块与语言原理,并通过各种实际场景下的用例来引导读者进行思考,使读者在学习编程语言的同时增进对语言本身的了解。 本书适用于高等院校计算机相关课程作为基础教材使用,也可以供对Node.js语言感兴趣的读者自学使用。
目录
1.1 了解Node.js 1
1.2 安装 1
1.2.1 源代码安装 2
1.2.2 验证安装 2
1.3 hello world 3
1.4 其他准备工作 3
1.4.1 准备一个开发环境 4
1.4.2 准备一份源代码 4
1.4.3 准备一个类Linux环境 4
1.4.4 熟悉控制台 4
1.4.5 准备一份文档 5
第2章 了解npm 6
2.1 package.json 7
2.1.1 生成package.json 7
2.1.2 第三方模块 8
2.2 使用npm install 8
2.3 node_modules 10
2.4 控制模块版本 11
2.4.1 子模块的版本 12
2.4.2 package-lock.json 12
2.5 使用npm构建项目 13
2.6 关于版本升级 15
小结 15
思考与问题 16
第3章 JavaScript核心 17
3.1 基本类型 18
3.1.1 布尔值 18
3.1.2 数字 19
3.1.3 字符串 19
3.1.4 正则表达式 21
3.1.5 比较相等 23
3.2 数据结构 24
3.2.1 数组 24
3.2.2 TypedArray 28
3.2.3 栈 29
3.2.4 链表 29
3.2.5 二叉树 30
3.2.6 Set 31
3.2.7 Map 32
3.3 变量与作用域 33
3.3.1 声明变量 33
3.3.2 变量提升 34
3.3.3 作用域 36
3.3.4 this 37
3.4 函数 37
3.4.1 箭头函数 37
3.4.2 覆盖原生函数 38
3.4.3 闭包 39
3.4.4 函数式编程 40
3.5 对象 45
3.5.1 创建对象 45
3.5.2 Symbol属性 47
3.5.3 对象遍历器 48
3.6 类与继承 51
3.6.1 定义一个类 51
3.6.2 继承 52
3.7 实战:编写字节码执行器 53
3.7.1 指令集 53
3.7.2 编写执行器 56
小结 59
思考与问题 59
第4章 编写结构化程序 60
4.1 module 63
4.1.1 哪些模块需要引入 64
4.1.2 require()及其运行机制 64
4.1.3 ES6 module 67
4.2 process 67
4.2.1 属性和方法 67
4.2.2 预定义事件 69
4.3 Events 70
4.3.1 使用 70
4.3.2 事件监听的实现原理 70
4.3.3 继承Events模块 71
4.4 文件系统 71
4.4.1 源码实现 71
4.4.2 文件系统API 72
4.4.3 同步和异步 74
4.4.4 关于文件路径 75
4.5 Stream 76
4.5.1 流式数据 76
4.5.2 Stream API 77
4.5.3 可读流 77
4.5.4 可写流 79
4.5.5 和文件系统API的比较 82
4.6 Child Process 84
4.6.1 spawn() 84
4.6.2 fork() 85
4.7 处理CPU密集型任务 87
4.8 实战:控制CPU占用曲线 89
4.8.1 单核环境 90
4.8.2 适应多核 91
4.8.3 精准控制 92
4.8.4 获取CPU占用率 94
4.9 C++扩展 95
4.9.1 V8 API 96
4.9.2 N-API 98
4.9.3 封装bitset 99
4.9.4 封装sleep函数 102
小结 104
思考与问题 104
第5章 组织异步代码 105
5.1 回调函数 106
5.1.1 回调函数的执行过程 106
5.1.2 回调的返回值 106
5.2 Promise 107
5.2.1 什么是Promise 108
5.2.2 then 109
5.2.3 使用Promise处理异步任务 110
5.2.4 使用Promise封装现有方法 114
5.2.5 运行多个Promise 115
5.2.6 更多API 118
5.3 async/await 118
5.3.1 背景 118
5.3.2 async函数 119
5.3.3 await关键字 119
5.3.4 错误处理 121
5.3.5 循环中的async 121
5.3.6 事件循环与async 122
5.4 动手实现Promise 122
5.4.1 从外到内 122
5.4.2 适应异步过程 123
5.4.3 实现链式调用 124
5.4.4 连续异步操作 126
小结 128
思考与问题 128
第6章 Web应用 129
6.1 Web服务器 129
6.1.1 使用HTTP模块 130
6.1.2 server/request/response 131
6.1.3 处理HTTP请求 135
6.1.4 模板引擎与页面渲染 140
6.1.5 数据库的交互 143
6.2 使用express 144
6.2.1 基本概念 145
6.2.2 静态文件服务 148
6.2.3 路由服务 148
6.2.4 中间件系统 150
6.2.5 迷你express 154
6.2.6 cookie 156
6.2.7 session 158
6.2.8 OAuth 161
6.2.9 与前端应用的整合 165
6.2.10 提高服务器性能 167
6.3 集群和进程管理 169
6.3.1 使用Cluster模块 169
6.3.2 负载均衡 171
6.3.3 服务器安全 173
6.4 HTTPS 175
6.4.1 对称加密和非对称加密 176
6.4.2 升级HTTPS服务器 177
6.5 全双工通信 177
6.5.1 轮询和长连接 177
6.5.2 使用WebSocket 178
6.5.3 WebSocket握手 179
6.5.4 HTTP/2 180
6.6 HTTP客户端 181
6.7 API文档 183
6.7.1 Swagger UI 183
6.7.2 API描述文件 184
小结 186
思考与问题 187
第7章 图形化应用 188
7.1 桌面应用 188
7.1.1 Java Swing 188
7.1.2 WPF 189
7.1.3 Qt 190
7.2 Electron 190
7.2.1 快速开始 191
7.2.2 页面和后台的交互 194
7.2.3 实现菜单栏 195
7.2.4 多窗口管理 199
小结 200
思考与问题 200
第8章 测试与调试 201
8.1 测试框架 201
8.1.1 断言系统 201
8.1.2 使用jasmine 202
8.1.3 覆盖率测试 208
8.1.4 压力测试 209
8.2 调试 210
8.2.1 调试Node代码 211
8.2.2 调试C++源代码 211
8.2.3 CPU profile 212
小结 215
思考与问题 215
附录A 基础概念 216
A.1 编程语言和运行时 216
A.1.1 编程语言的产生 217
A.1.2 什么是运行时 217
A.1.3 为什么是JavaScript 217
A.1.4 编译Node源码 217
A.1.5 Node架构 218
A.1.6 js2c 220
A.2 关于操作系统 221
A.2.1 进程和线程 221
A.2.2 理解高并发 222
A.2.3 理解非阻塞 222
A.3 事件循环 222
A.3.1 各阶段概述 223
A.3.2 阻塞事件循环 224
A.3.3 process.nextTick 225
A.3.4 模拟事件循环 227
A.3.5 microTask 和macroTask/task 228
附录B 网络通信基础 232
B.1 发生了什么 232
B.1.1 寻址 232
B.1.2 建立连接 232
B.1.3 通信 233
B.2 socket接口 233
B.2.1 创建socket 234
B.2.2 建立连接 234
B.2.3 接收消息 234
B.3 socket与并发 234
B.3.1 select和poll 235
B.3.2 epoll 236
附录C Node和其他语言的比较 237
C.1 面向对象 237
C.2 C语言中的Stream 238
C.3 关于I/O的处理 239
C.4 C# Task 239
附录D Docker 241
D.1 容器技术 241
D.1.1 镜像 241
D.1.2 容器与镜像 242
D.1.3 运行 242
D.2 运行MySQL 243
D.3 使用MongoDB 243
D.4 Dockerfile 244
作者简介
李锴,毕业于厦门大学软件学院,目前任职于花旗集团,从事Web前端开发工作。喜欢钻研前沿技术,热爱技术分享,自2014年接触Node以来,使用Node.js完成了多个中小型应用的开发,并且愿意将Node.js技术分享给更多人。
-
乡村振兴新技术:新时代农村短视频编辑技术基础入门
¥12.8¥32.0 -
AI绘画+AI摄影+AI短视频从入门到精通
¥45.5¥79.8 -
企业AI之旅
¥43.5¥79.0 -
机器学习
¥59.4¥108.0 -
基于知识蒸馏的图像去雾技术
¥61.6¥88.0 -
软件设计的哲学(第2版)
¥51.0¥69.8 -
智能算法优化及其应用
¥52.4¥68.0 -
Photoshop图像处理
¥25.5¥49.0 -
R语言医学数据分析实践
¥72.3¥99.0 -
大模型推荐系统:算法原理、代码实战与案例分析
¥62.3¥89.0 -
剪映 从入门到精通
¥25.7¥59.8 -
游戏造梦师----游戏场景开发与设计
¥67.6¥98.0 -
SAR图像处理与检测
¥35.4¥49.8 -
人工智能
¥29.4¥42.0 -
中文版PHOTOSHOP 2024+AI修图入门教程
¥59.3¥79.0 -
WPS办公软件应用
¥25.2¥36.0 -
格拉斯曼流行学习及其在图像集分类中的应用
¥13.7¥28.0 -
轻松上手AIGC:如何更好地向CHATGPT提问
¥40.3¥62.0 -
元宇宙的理想与现实:数字科技大成的赋能与治理逻辑
¥61.6¥88.0 -
云原生安全:攻防与运营实战
¥66.8¥89.0