0%

了不起的Node.js:将JavaScript进行到底(英文)

基本信息

名称: 了不起的Node.js:将JavaScript进行到底(英文)
作者信息: 作者: Guillermo Rauch [ 英文 pdf ]

简单介绍

Node.js是一个由JavaScript书写而成的强大的web开发框架,它让开发强壮的、伸缩性良好的服务端web应用变得更加简单,容易。本书向你展示了什么是Node以及如何让你在项目中使用它。本书包含大量实际应用中的示例程序,证明了为什么Node.js会快速成为web开发首选工具的原因,通过本书,你能够快速熟悉和掌握达到如下目标所需的Node知识和技能:
了解Node基于事件轮询的架构、无阻塞IO以及事件驱动的编程方式
精通Node.js的API
轻松实现开发实时应用相关的技术,如SOCKET.IO和HTML5 WEBSOCKETS
编写能够支持跨多台服务器的高并发应用
通过Node来支持多种数据库以及数据存储工具
编写在单台服务器情况下能够处理万级并发量的程序
能够在一个包含更多Node知识和注解示例(含源代码)的网站上和其他开发者进行实时地沟通交流
本书包含大量全彩插图和实用的源代码,绝对是一本革命性web开发工具——Node的实用指南。

目录

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
PART Ⅰ 从安装与概念开始
CHAPTER 1 安装……………………………………….. 3
在Windows下安装……………………………………….. 3
在OS.X下安装. ………………………………………… 4
在Linux下安装…………………………………………. 5
编译. ……………………………………………………5
确保安装成功. ………………………………………..5
Node.REPL…………………………………………. 5
执行文件…………………………………………………. 6
NPM……………………………………………………….. 6
安装模块…………………………………………………..7
自定义模块. ……………………………………………….8
安装二进制工具包. …………………………………………..9
浏览NPM仓库. ……………………………………………….9
小结……………………………………………………….. 10
CHAPTER 2 JavaScript概览…………………………………..11
介绍…………………………………………………. 11
JavaScript基础…………………………………………….. 12
类型. ………………………………………………… 12
类型的困惑. ……………………………………….. 12
函数. …………………………………………………. 13
THIS、FUNCTION #CALL以及FUNCTION#APPLY……………….. 14
函数的参数数量. ……………………… 14
闭包. ……………………………………………….. 14
类. …………………………………………………….. 15
继承. …………………………………………….. 16
TRY.{}.CATCH.{}……………………………….. 17
v8中的JavaScript…………………………. 17
OBJECT#KEYS………………………………………………. 18
ARRAY#ISARRAY………………………………………… 18
数组方法…………………………………………. 18
字符串方法.. ……………………………………………. 19
JSON……………………………………………………. 19
FUNCTION#BIND………………………………………………. 19
FUNCTION#NAME………………………………………. 19
PROTO(继承). …………………………………….. 20
存取器………………………………………………. 20
小结…………………………………………………….. 21
CHAPTER 3 阻塞与非阻塞IO…………………………… 23
能力越强,责任就越大…………………………………………. 23
阻塞. ……………………………………………………. 25
单线程的世界. ……………………………………….. 27
错误处理…………………………………………….. 29
堆栈追踪………………………………………… 30
小结……………………………………………………… 32
CHAPTER 4 Node中的JavaScript ………………………………. 33
global对象………………………………………………. 33
实用的全局对象. ………………………………………… 34
模块系统…………………………………………………… 34
绝对和相对模块. ………………………………………….. 35
暴露API. ……………………………………………………… 37
事件………………………………………………… 38
buffer……………………………………………………… 40
小结…………………………………………………………. 41
PART Ⅱ Node重要的API
CHAPTER 5 命令行工具(CLI)以及FS API:首个Node应用………………. 45
需求…………………………………………. 45
编写首个Node程序……………………………….. 46
创建模块………………………………………. 46
同步还是异步. ………………………. 47
理解什么是流(stream)…………………………….. 49
输入和输出. …………………………………………………. 50
重构. …………………………………. 53
用fs进行文件操作. ………………………… 55
对CLI一探究竟. …………………………………………. 56
argv……………………………………………. 57
工作目录……………………………….. 57
环境变量……………………………………. 58
退出. ……………………………………….. 58
信号. …………………………………………………. 58
ANSI转义码…………………………………….. 59
对fs一探究竟. …………………………………………. 59
Stream………………………………………………… 59
监视. …………………………………… 60
小结……………………………………………… 61
CHAPTER 6 TCP ……………………………………. 63
TCP有哪些特性. …………………………………………….. 64
面向连接的通信和保证顺序的传递. ……………………… 64
面向字节…………………………………. 65
可靠性……………………………………….. 65
流控制………………………………….. 65
拥堵控制………………………………………. 65
Telnet………………………………………………………. 65
基于TCP的聊天程序……………………………………….. 68
创建模块………………………………. 68
理解NET.SERVER.API…………………… 68
接收连接………………………………… 70
data事件. ……………………………………………… 71
状态以及记录连接情况. …………………………………. 73
圆满完成此程序. …………………………………….. 75
一个IRC客户端程序…………………………………… 77
创建模块………………………………………. 77
理解NET#STREAM.API.. ………………………………….. 78
实现部分IRC协议. ………………………………………….. 78
测试实际的IRC服务器. ……………………………. 78
小结……………………………………………………….. 79
CHAPTER 7 HTTP ………………………………………….. 81
HTTP结构………………………………………………… 81
头信息. ……………………………………………… 82
连接…………………………………………………….. 87
一个简单的Web服务器………………………………………….. 88
创建模块………………………………… 88
输出表单……………………………………………. 88
method和URL. ……………………………………. 90
数据. ………………………………………. 92
整合. ………………………………………… 94
让程序更健壮. ………………………………. 95
一个Twitter.Web客户端………………………………….. 96
创建模块………………………………… 96
发送一个简单的HTTP请求. …………………. 97
发送数据………………………………….. 98
获取推文…………………………………………. 99
superagent来拯救………………………………………. 102
使用up重启HTTP服务器………………………………. 103
小结……………………………………… 104
PART Ⅲ Web开发
CHAPTER 8 Connect ………………………… 107
使用HTTP构建一个简单的网站. ………………………………… 108
通过Connect实现一个简单的网站……………………………….. 111
中间件. …………………………………………. 112
书写可重用的中间件. …………………….114
static中间件. ………………………………………119
query中间件. …………………………………120
logger中间件…………………………………………… 120
body.parser中间件. ……………………………122
cookie…………………………………………………125
会话(session). ………………………………..126
Redis.session…………………………………………..131
methodOverride中间件. ………………………132
basicAuth中间件. ………………………………..132
小结…………………………………………………….. 134
CHAPTER 9 Express…………………………………………..135
一个小型Express应用. ……………………………….. 135
创建模块……………………………………….136
HTML…………………………………………………..136
SETUP………………………………………………….137
定义路由……………………………………..137
查询. ………………………………………….140
运行. ……………………………………………..141
设置………………………………………………… 142
模板引擎……………………………………………… 143
错误处理……………………………………………….. 144
快捷方法…………………………………………. 144
路由………………………………………… 146
中间件. ……………………………………………. 148
代码组织策略. ………………………………….. 149
小结…………………………………………. 151
CHAPTER 10 WebSocket ……………… 153
Ajax………………………………………. 153
HTML5.WebSocket……………………………………….. 156
一个ECHO示例. ………………………………………………… 157
初始化项目. ………………………………………157
建立服务器. …………………………………………..158
建立客户端. ………………………………..159
运行示例程序. ……………………………..160
鼠标光标…………………………………… 161
初始化示例程序. …………………………………..161
建立服务器. ……………………………………..161
建立客户端. ……………………………….164
运行示例程序. …………………………………..166
面临一个挑战. ……………………………………… 166
关闭并不意味着断开连接. ………………………..166
JSON…………………………………….167
重连. ……………………………………………167
广播. …………………………………………167
WebSocket属于HTML5:早期浏览器不支持. ……………………..167
解决方案………………………………………….167
小结……………………………………………………. 167
CHAPTER 11 Socket.IO………………………………………169
传输…………………………………………. 170
断开.VS.关闭. ……………………………………..170
事件. ……………………………………170
命名空间……………………………………….171
聊天程序…………………………………………. 172
初始化程序. …………………………………172
构建服务器. ……………………………………172
构建客户端. …………………………………173
事件和广播. ………………………………….175
消息接收确认. ……………………………179
一个轮流做DJ的应用………………………….. 180
扩展聊天应用. …………………………………….181
集成Grooveshark.API. ………………………….182
播放歌曲………………………………………..185
小结……………………………………………. 190
PART Ⅳ 数据库
CHAPTER 12 MongoDB…………………..193
安装………………………………………….. 195
使用MongoDB:一个用户认证的例子. ……………………………. 195
构建应用程序. …………………………………195
创建Express.App.. …………………………196
连接MongoDB. ……………………………..200
创建文档………………………………..201
查找文档…………………………….203
身份验证中间件. …………………………….204
校验.. ……………………………………….205
原子性……………………………………….206
安全模式…………………………..206
Mongoose介绍………………………………….. 206
定义模型………………………………….207
定义嵌套的键. ……………………..208
定义嵌套文档. ……………………………….209
构建索引……………………………………209
中间件………………………………………….209
探测模型状态.. ………………………….210
查询. ……………………………………….210
扩展查询………………………………….210
排序.. ………………………………….211
选择. ………………………………………………211
限制.. ……………………………….211
跳过. …………………………………..211
自动产生键. ………………………….211
转换. ……………………………………….212
一个使用Mongoose的例子…………………………………. 212
构建应用……………………………212
重构. …………………………213
建立模型……………………………213
小结…………………………………… 215
CHAPTER 13 MySQL…………………………………….217
node-mysql…………………………………. 217
初始化项目. …………………………………217
Express应用. ……………………………..218
连接MySQL. ……………………………….219
初始化脚本. …………………………………220
创建数据…………………………………………224
获取数据……………………………….228
sequelize…………………………………….. 229
初始化sequelize. …………………………..230
初始化Express应用. ………………………………230
连接sequelize. …………………….233
定义模型和同步. ……………………… 234
创建数据……………………………236
获取数据………………………………..238
删除数据…………………………239
完整地完成应用. ………………………….240
小结…………………………………… 241
CHAPTER 14 Redis………………………………….. 243
安装Redis……………………………………….. 244
Redis查询语言. ……………………………………….. 245
数据类型……………………………………… 245
字符串. ……………………………..246
哈希. ………………………………………….246
列表. ………………………………….. 248
数据集. ……………………………….249
有序数据集. …………………………………..249
Redis和Node. …………………………………… 249
使用node-redis实现一个社交图谱. ………….250
小结………………………………….. 259
PART Ⅴ 测试
CHAPTER 15 代码共享 …………………………… 263
什么样的代码可以共享……………………………………. 263
书写兼容的JavaScript代码………………………….. 264
导出模块………………………………………………264
模拟实现ECMA.API. …………………………..265
模拟实现Node.API. ………………………………..267
模拟实现浏览器端API. ………………………….267
跨浏览器的继承实现. ………………………268
集成到一起:browserbuild. …………………. 268
基础案例………………………………269
小结………………………………….. 271
CHAPTER 16 测试…………………………….. 273
简单测试…………………………………. 273
测试目标……………………………………… 274
测试策略…………………………….. 274
测试程序……………………………………………275
expect.js…………………………………………. 276
API一览. …………………………………..276
Mocha…………………………………………. 278
测试异步代码. …………………………….279
BDD风格. …………………………..281
TDD风格. …………………………………281
export风格. ……………………………282
在浏览器端使用Mocha. ……………………………..282
小结……………………………… 284
索引 ……………………………….. 285

亚马逊链接

欢迎关注我的其它发布渠道