当前位置:主页 > 计算机电子书 > 程序设计 > Node.js下载
Node.js实战

Node.js实战 PDF 原书完整版

  • 更新:2021-12-25
  • 大小:19 MB
  • 类别:Node.js
  • 作者:Mike、Cantelon
  • 出版:人民邮电出版社
  • 格式:PDF

  • 资源介绍
  • 相关推荐

内容简介

服务器端JavaScript?没错。Node.js是一个JavaScript服务器,支持可伸缩的高性能Web应用。借助异步I/O,这个服务器可以同时做很多事情,能满足聊天、游戏和实时统计等应用的需求。并且既然是JavaScript,那你就可以全栈使用一种语言。

本书向读者展示了如何构建产品级应用,对关键概念的介绍清晰明了,贴近实际的例子,涵盖从安装到部署的各个环节,是一部讲解与实践并重的优秀著作。通过学习本书,读者将深入异步编程、数据存储、输出模板、读写文件系统,掌握创建TCP/IP服务器和命令行工具等非HTTP程序的技术。本书同样非常适合熟悉Rails、Django或PHP开发的读者阅读学习。

本书主要内容:

Node.js及其扩展的安装配置;

全面理解异步编程和事件循环;

学会开发微博、聊天和游戏等热门应用。

目录

  • 第一部分Node基础
  • 第1章欢迎进入Node.js世界2
  • 1.1构建于JavaScript之上3
  • 1.2异步和事件触发:浏览器4
  • 1.3异步和事件触发:服务器5
  • 1.4DIRT程序6
  • 1.5默认DIRT8
  • 1.5.1简单的异步程序9
  • 1.5.2Hello World HTTP服务器10
  • 1.5.3流数据10
  • 1.6小结11
  • 第2章构建有多个房间的聊天室程序12
  • 2.1程序概览12
  • 2.2程序需求及初始设置15
  • 2.2.1提供HTTP和WebSocket服务15
  • 2.2.2创建程序的文件结构16
  • 2.2.3指明依赖项16
  • 2.2.4安装依赖项17
  • 2.3提供HTML、CSS和客户端JavaScript的服务18
  • 2.3.1创建静态文件服务器19
  • 2.3.2添加HTML和CSS文件21
  • 2.4用Socket.IO处理与聊天相关的消息23
  • 2.4.1设置Socket.IO服务器24
  • 2.4.2处理程序场景及事件25
  • 2.5在程序的用户界面上使用客户端JavaScript29
  • 2.5.1将消息和昵称/房间变更请求传给服务器29
  • 2.5.2在用户界面中显示消息及可用房间30
  • 2.6小结34
  • 第3章Node编程基础35
  • 3.1Node功能的组织及重用36
  • 3.1.1创建模块37
  • 3.1.2用module.exports微调模块的创建39
  • 3.1.3用node_modules重用模块40
  • 3.1.4注意事项41
  • 3.2异步编程技术42
  • 3.2.1用回调处理一次性事件43
  • 3.2.2用事件发射器处理重复性事件46
  • 3.2.3异步开发的难题53
  • 3.3异步逻辑的顺序化54
  • 3.3.1什么时候使用串行流程控制55
  • 3.3.2实现串行化流程控制56
  • 3.3.3实现并行化流程控制58
  • 3.3.4利用社区里的工具60
  • 3.4小结61
  • 第二部分用Node开发Web程序
  • 第4章构建Node Web程序64
  • 4.1HTTP服务器的基础知识64
  • 4.1.1Node如何向开发者呈现HTTP请求65
  • 4.1.2一个用“Hello World”做响应的HTTP服务器67
  • 4.1.3读取请求头及设定响应头67
  • 4.1.4设定HTTP响应的状态码67
  • 4.2构建RESTful Web服务68
  • 4.2.1用POST请求创建资源69
  • 4.2.2用GET请求获取资源71
  • 4.2.3用DELETE请求移除资源72
  • 4.3提供静态文件服务73
  • 4.3.1创建一个静态文件服务器73
  • 4.3.2处理服务器错误77
  • 4.3.3用fs.stat()实现先发制人的错误处理77
  • 4.4从表单中接受用户输入78
  • 4.4.1处理提交的表单域78
  • 4.4.2用formidable处理上传的文件81
  • 4.4.3计算上传进度84
  • 4.5用HTTPS加强程序的安全性85
  • 4.6小结86
  • 第5章存储Node程序中的数据87
  • 5.1无服务器的数据存储88
  • 5.1.1内存存储88
  • 5.1.2基于文件的存储88
  • 5.2关系型数据库管理系统91
  • 5.2.1MySQL91
  • 5.2.2PostgreSQL99
  • 5.3NoSQL数据库100
  • 5.3.1Redis101
  • 5.3.2MongoDB105
  • 5.3.3Mongoose107
  • 5.4小结109
  • 第6章Connect110
  • 6.1搭建一个Connect程序111
  • 6.2Connect的工作机制112
  • 6.2.1做日志的中间件112
  • 6.2.2响应“hello world”的中间件113
  • 6.3为什么中间件的顺序很重要114
  • 6.3.1中间件什么时候不调用next()114
  • 6.3.2用中间件的顺序执行认证115
  • 6.4挂载中间件和服务器115
  • 6.4.1认证中间件116
  • 6.4.2显示管理面板的中间件117
  • 6.5创建可配置中间件118
  • 6.5.1创建可配置的logger中间件组件119
  • 6.5.2构建路由中间件组件120
  • 6.5.3构建一个重写URL的中间件组件122
  • 6.6使用错误处理中间件123
  • 6.6.1Connect的默认错误处理器124
  • 6.6.2自行处理程序错误124
  • 6.6.3使用多个错误处理中间件组件125
  • 6.7小结129
  • 第7章Connect自带的中间件130
  • 7.1解析cookie、请求主体和查询字符串的中间件131
  • 7.1.1cookieParser():解析HTTP cookie131
  • 7.1.2bodyParser():解析请求主体134
  • 7.1.3limit():请求主体的限制135
  • 7.1.4query():查询字符串解析137
  • 7.2实现Web程序核心功能的中间件138
  • 7.2.1logger():记录请求138
  • 7.2.2favicon():提供favicon140
  • 7.2.3methodOverride():伪造HTTP方法141
  • 7.2.4vhost():虚拟主机143
  • 7.2.5session():会话管理144
  • 7.3处理Web程序安全的中间件148
  • 7.3.1basicAuth():HTTP基本认证148
  • 7.3.2csrf():跨站请求伪造防护150
  • 7.3.3errorHandler():开发错误处理150
  • 7.4提供静态文件服务的中间件152
  • 7.4.1static():静态文件服务152
  • 7.4.2compress():压缩静态文件154
  • 7.4.3directory():目录列表156
  • 7.5小结157
  • 第8章Express158
  • 8.1生成程序骨架160
  • 8.1.1安装Express的可执行程序161
  • 8.1.2生成程序162
  • 8.1.3探索程序162
  • 8.2配置Express和你的程序164
  • 8.3渲染视图166
  • 8.3.1视图系统配置167
  • 8.3.2视图查找169
  • 8.3.3把数据输出到视图中171
  • 8.4处理表单和文件上传175
  • 8.4.1实现照片模型175
  • 8.4.2创建照片上传表单176
  • 8.4.3显示上传照片列表178
  • 8.5创建资源下载179
  • 8.5.1创建照片下载路由179
  • 8.5.2实现照片下载路由180
  • 8.6小结182
  • 第9章Express进阶183
  • 9.1认证用户184
  • 9.1.1保存和加载用户184
  • 9.1.2注册新用户189
  • 9.1.3已注册用户登录194
  • 9.1.4用户加载中间件197
  • 9.2先进的路由技术199
  • 9.2.1校验用户内容提交199
  • 9.2.2特定路由中间件202
  • 9.2.3实现分页205
  • 9.3创建一个公开的REST API208
  • 9.3.1设计API208
  • 9.3.2添加基本的认证209
  • 9.3.3实现路由209
  • 9.3.4启用内容协商212
  • 9.4错误处理214
  • 9.4.1处理404错误215
  • 9.4.2处理错误217
  • 9.5小结220
  • 第10章测试Node程序221
  • 10.1单元测试222
  • 10.1.1assert模块222
  • 10.1.2Nodeunit225
  • 10.1.3Mocha227
  • 10.1.4Vows232
  • 10.1.5should.js234
  • 10.2验收测试235
  • 10.2.1Tobi236
  • 10.2.2Soda237
  • 10.3小结239
  • 第11章Web程序模板240
  • 11.1用模板保持代码的整洁性240
  • 11.2嵌入JavaScript的模板244
  • 11.2.1创建模板245
  • 11.2.2用EJS过滤器处理模板数据246
  • 11.2.3将EJS集成到你的程序中249
  • 11.2.4在客户端程序中使用EJS250
  • 11.3使用Mustache模板语言与Hogan251
  • 11.3.1创建模板251
  • 11.3.2Mustache标签252
  • 11.3.3微调Hogan254
  • 11.4用Jade做模板255
  • 11.4.1Jade基础知识256
  • 11.4.2Jade模板中的逻辑258
  • 11.4.3组织Jade模板260
  • 11.5小结264
  • 第三部分在Node中更进一步
  • 第12章部署Node程序并维持正常运行时间266
  • 12.1安置Node程序266
  • 12.1.1专用的和虚拟私有服务器267
  • 12.1.2云主机268
  • 12.2部署的基础知识269
  • 12.2.1从Git存储库部署270
  • 12.2.2让Node保持运行270
  • 12.3让正常运行时间和性能达到最优271
  • 12.3.1用Upstart维护正常运行时间272
  • 12.3.2集群API:利用多核的优势273
  • 12.3.3静态文件及代理275
  • 12.4小结277
  • 第13章超越Web服务器278
  • 13.1Socket.IO278
  • 13.1.1创建一个最小的Socket.IO程序279
  • 13.1.2用Socket.IO触发页面和CSS的重新加载281
  • 13.1.3Socket.IO的其他用法283
  • 13.2深入TCP/IP网络284
  • 13.2.1处理缓冲区和二进制数据284
  • 13.2.2创建TCP服务器286
  • 13.2.3创建TCP客户端289
  • 13.3跟操作系统交互的工具290
  • 13.3.1单例的全局process对象291
  • 13.3.2使用文件系统模块293
  • 13.3.3繁衍外部进程296
  • 13.4开发命令行工具301
  • 13.4.1解析命令行参数301
  • 13.4.2处理stdin和stdout302
  • 13.4.3添加彩色的输出304
  • 13.5小结306
  • 第14章Node生态系统307
  • 14.1给Node开发人员的在线资源308
  • 14.1.1Node和模块的参考资料308
  • 14.1.2Google群组309
  • 14.1.3IRC309
  • 14.1.4GitHub问题列表310
  • 14.2GitHub310
  • 14.2.1GitHub入门311
  • 14.2.2添加一个项目到GitHub中312
  • 14.2.3用GitHub协作314
  • 14.3为npm库做贡献316
  • 14.3.1准备包317
  • 14.3.2编写包规范317
  • 14.3.3测试和发布包318
  • 14.4小结320
  • 附录A安装Node和社区附加组件321
  • 附录B调试Node329
  • 附录CExpress的扩展及配置336

资源下载

资源下载地址1:https://pan.baidu.com/s/1hZLrXtBGndGhpbt2c-0_iQ

相关资源

网友留言

网友NO.37481
邰和歌

这本书还没出版的时候,我已经通读过了,是试读版的。对于你所说的这些东西,我理解为都是末枝末节。这本书的重点不是教你语法,学JS语法可以看《权威指南》,学nodeAPI可以看官方文档,学express也可以去看文档,网上例子还很多。这本书最大的价值就在于它介绍了NODE WEB APPLICATION 的生态体系。

它提出了一个大概的思路,给你一个方向,你可以顺着这个方向去学习去深化。

众所周知的事情,像这种新鲜事物,要学习它,最重要的就是有一个明确的方向。

这才是其价值所在。

网友NO.40194
衡飞鸣

实在是有深入浅出的感觉。虽然前面几章节把node.js的主要原理讲完就差不多了,但后面关于connect, express的还不错。