![]()
内容推荐 "《循序渐进Node.js企业级开发实践》结合作者多年一线开发实践,系统地介绍了Node.js技术栈及其在企业级开发中的应用。全书共分5部分,第1部分基础知识(第1~3章),介绍Node.js的基础知识,包括模块化、测试等;第2部分核心编程(第4~9章),介绍Node.js的缓冲区、事件、定时、文件、进程、流等方面的处理;第3部分网络编程(第10~16章),介绍Node.js的TCP、UDP、HTTP、WebSocket、TSL/SSL、常用Web中间件、Vue.js与响应式编程等方面的内容;第4部分数据存储(第17~19章),介绍Node.js关于MySQL、MongoDB、Redis等数据存储的操作;第5部分综合应用(第20章),介绍Node.js实现即时聊天应用的完整过程。除了Node.js技术外,本书还讲述了Express、Socket.IO、Vue.js、MySQL、MongoDB、Redis等热门技术的应用。本节还精心设计了26个实战案例和43个上机练习,所有练习都提供了操作步骤,便于读者实操演练,快速上手。 《循序渐进Node.js企业级开发实践》技术新颖,实例丰富,理论讲解与代码实现相结合,既适合作为Node.js的初学者和进阶读者的自学用书,也适合作为培训机构或高校相关专业的教学用书。" 目录 目 录 第 1 章 走进Node.js的世界\t1 1.1 认识Node.js\t1 1.1.1 Node.js简介\t1 1.1.2 Node.js的特点\t2 1.2 安装Node.js及IDE\t6 1.2.1 安装Node.js和npm\t6 1.2.2 Node.js与npm的关系\t6 1.2.3 安装npm镜像\t6 1.2.4 选择合适的IDE\t7 1.3 实战:第一个Node.js应用\t7 1.3.1 创建Node.js应用\t7 1.3.2 运行Node.js应用\t7 1.3.3 小结\t8 1.4 实战:在Node.js应用中使用TypeScript\t8 1.4.1 创建TypeScript版本的Node.js应用\t8 1.4.2 运行TypeScript应用\t9 1.5 上机演练\t9 1.6 本章小结\t11 第 2 章 模块化\t12 2.1 理解模块化机制\t12 2.1.1 理解CommonJS规范\t12 2.1.2 理解ECMAScript模块\t14 2.1.3 CommonJS和ECMAScript模块的异同点\t16 2.1.4 Node.js的模块实现\t16 2.2 使用npm管理模块\t18 2.2.1 使用npm命令安装模块\t18 2.2.2 全局安装与本地安装\t18 2.2.3 查看安装信息\t19 2.2.4 卸载模块\t19 2.2.5 更新模块\t19 2.2.6 搜索模块\t19 2.2.7 创建模块\t20 2.3 核心模块\t20 2.3.1 核心模块介绍\t20 2.3.2 实战:核心模块fs的简单示例\t20 2.4 上机演练\t21 2.5 本章小结\t22 第 3 章 测试\t23 3.1 使用断言\t23 3.1.1 什么是断言测试\t23 3.1.2 严格模式和遗留模式\t24 3.1.3 实战:断言的使用\t25 3.1.4 了解AssertionError\t27 3.1.5 实战:deepStrictEqual示例\t27 3.2 第三方测试工具\t29 3.2.1 Nodeunit\t30 3.2.2 Mocha\t31 3.2.3 Vows\t31 3.3 上机演练\t33 练习一:使用Node.js的断言功能进行简单的单元测试\t33 练习二:使用.js的AssertionError\t34 练习三:使用Node.js的第三方测试工具\t34 3.4 本章小结\t35 第 4 章 缓冲区\t36 4.1 了解缓冲区\t36 4.1.1 了解TypedArray\t36 4.1.2 Buffer类\t37 4.2 创建缓冲区\t38 4.2.1 初始化缓冲区的API\t39 4.2.2 理解数据的安全性\t39 4.2.3 启用零填充\t40 4.2.4 指定字符编码\t40 4.3 切分缓冲区\t41 4.4 连接缓冲区\t42 4.5 比较缓冲区\t43 4.6 缓冲区编解码\t44 4.6.1 解码器和编码器\t44 4.6.2 缓冲区解码\t44 4.6.3 缓冲区编码\t45 4.7 上机演练\t46 练习一:创建缓冲区\t46 练习二:切分缓冲区\t46 练习三:连接缓冲区\t47 练习四:缓冲区编解码\t47 4.8 本章小结\t48 第 5 章 事件处理\t49 5.1 理解事件和回调\t49 5.1.1 事件循环\t50 5.1.2 事件驱动\t50 5.2 事件发射器\t51 5.2.1 将参数和this传递给监听器\t51 5.2.2 异步与同步\t52 5.2.3 仅处理事件一次\t52 5.3 事件类型\t53 5.3.1 事件类型的定义\t53 5.3.2 内置的事件类型\t54 5.3.3 error事件\t54 5.4 事件的操作\t56 5.4.1 实战:设置优选监听器\t56 5.4.2 实战:获取已注册的事件的名称\t56 5.4.3 实战:获取监听器数组的副本\t57 5.4.4 实战:将事件监听器添加到监听器数组的开头\t57 5.4.5 实战:移除监听器\t58 5.5 上机演练\t60 5.6 本章小结\t61 第 6 章 定时处理\t62 6.1 定时处理常用类\t62 6.1.1 Immediate\t62 6.1.2 Timeout\t63 6.2 定时调度\t64 6.2.1 setImmediate\t64 6.2.2 setInterval\t65 6.2.3 setTimeout\t65 6.2.4 setInterval和setTimeout的异同\t66 6.3 取消定时\t67 6.4 上机演练\t69 6.5 本章小结\t70 第 7 章 文件处理\t71 7.1 了解node:fs模块\t71 7.1.1 同步与异步操作文件\t71 7.1.2 文件描述符\t73 7.2 处理文件路径\t74 7.2.1 字符串形式的路径\t74 7.2.2 Buffer形式的路径\t74 7.2.3 URL对象的路径\t75 7.3 打开文件\t76 7.3.1 文件系统标志\t77 7.3.2 实战:打开当前目录下的文件\t78 7.4 实战:读取文件\t79 7.4.1 fs.read\t79 7.4.2 fs.readdir\t80 7.4.3 fs.readFile\t80 7.5 实战:写入文件\t82 7.5.1 将buffer写入文件\t82 7.5.2 将字符串写入文件\t83 7.5.3 将数据写入文件\t84 7.6 上机演练\t85 7.7 本章小结\t86 第 8 章 进程\t87 8.1 执行外部命令\t87 8.1.1 spawn()\t87 8.1.2 exec()\t89 8.1.3 execFile()\t90 8.2 子进程ChildProcess\t92 8.2.1 生成子进程\t92 8.2.2 进程间通信\t92 8.3 终止进程\t94 8.4 上机演练\t94 练习一:执行外部命令\t94 练习二:进程间通信\t95 练习三:终止进程\t95 8.5 本章小结\t96 第 9 章 流\t97 9.1 流的概述\t97 9.1.1 流的类型\t97 9.1.2 对象模式\t97 9.1.3 流中的缓冲区\t98 9.2 可读流\t98 9.2.1 stream.Readable类事件\t99 9.2.2 stream.Readable类方法\t101 9.2.3 异步迭代器\t104 9.2.4 两种读取模式\t105 9.3 可写流\t105 9.3.1 stream.Writable类事件\t106 9.3.2 stream.Writable类方法\t107 9.4 双工流与转换流\t110 9.4.1 实现双工流\t110 9.4.2 实战:双工流的例子\t110 9.4.3 对象模式的双工流\t111 9.4.4 实现转换流\t112 9.5 上机演练\t112 练习一:使用可读流读取文件\t112 练习二:使用可写流写入文件\t113 练习三:实现一个简单的双工流\t113 9.6 本章小结\t114 第 10 章 TCP\t115 10.1 创建TCP服务器\t115 10.1.1 了解TCP\t115 10.1.2 了解socket\t116 10.1.3 node:net模块\t117 10.1.4 实战:创建TCP服务器\t117 10.2 监听连接\t118 10.2.1 server.listen(handle[, backlog][, callback])\t119 10.2.2 server.listen(options[, callback])\t119 10.3 发送和接收数据\t120 10.3.1 创建socket对象\t120 10.3.2 创建socket对象来发送和接收数据\t121 10.3.3 实战:TCP服务器的例子\t121 10.4 关闭TCP服务器\t122 10.4.1 socket.end()\t123 10.4.2 server.close()\t124 10.5 上机演练\t125 练习一:创建TCP服务器\t125 练习二:发送和接收数据\t126 练习三:关闭TCP服务器\t127 10.6 本章小结\t128 第 11 章 UDP\t129 11.1 创建UDP服务器\t129 11.1.1 了解UDP\t129 11.1.2 TCP与UDP的区别\t130 11.1.3 实战:创建UDP服务器\t130 11.2 监听连接\t131 11.3 发送和接收数据\t131 11.3.1 message事件\t131 11.3.2 socket.send()方法\t132 11.4 关闭UDP服务器\t133 11.5 实战:UDP服务器通信\t134 11.5.1 UDP服务器\t134 11.5.2 UDP客户端\t135 11.5.3 运行应用\t135 11.6 上机演练\t136 练习一:创建UDP服务器\t136 练习二:发送和接收数据\t137 练习三:关闭UDP服务器\t137 11.7 本章小结\t138 第 12 章 HTTP\t139 12.1 创建HTTP服务器\t139 12.1.1 使用http.Server类创建服务器\t139 12.1.2 http.Server事件\t140 12.2 处理HTTP的常用操作\t142 12.3 请求对象和响应对象\t142 12.3.1 http.ClientRequest类\t142 12.3.2 http.ServerResponse类\t146 12.4 REST概述\t149 12.4.1 REST定义\t149 12.4.2 REST设计原则\t150 12.5 成熟度模型\t151 12.5.1 第0级:使用HTTP作为传输方式\t151 12.5.2 第1级:引入资源的概念\t153 12.5.3 第2级:根据语义使用HTTP动词\t153 12.5.4 第3级:使用HATEOAS\t155 12.6 实战:构建REST服务\t157 12.6.1 新增用户\t157 12.6.2 修改用户\t158 12.6.3 删除用户\t159 12.6.4 响应请求\t160 12.6.5 运行应用\t161 12.7 上机演练\t163 练习一:创建一个简单的HTTP服务器\t163 练习二:实现一个简单的RESTful API服务\t164 12.8 本章小结\t165 第 13 章 WebSocket\t166 13.1 创建WebSocket服务器\t166 13.1.1 常见的Web推送技术\t166 13.1.2 使用ws创建WebSokcet服务器\t168 13.2 监听连接\t168 13.3 发送和接收数据\t169 13.3.1 发送数据\t169 13.3.2 发送ping和pong\t170 13.3.3 接收数据\t170 13.4 准备的状态\t171 13.5 关闭WebSocket服务器\t171 13.6 实战:WebSocket聊天服务器\t171 13.6.1 聊天服务器的需求\t172 13.6.2 服务器的实现\t172 13.6.3 客户端的实现\t173 13.6.4 运行应用\t174 13.7 上机演练\t175 练习一:创建一个简单的WebSocket服务器\t175 练习二:实现一个简单的聊天室功能\t176 练习三:实现客户端与服务器的实时通信\t177 13.8 本章小结\t178 第 14 章 TLS/SSL\t179 14.1 了解TLS/SSL\t179 14.1.1 加密算法\t179 14.1.2 安全通道\t182 14.1.3 TLS/SSL握手过程\t182 14.1.4 HTTPS\t185 14.2 Node.js中的TLS/SSL\t186 14.3 产生私钥\t186 14.4 实战:构建TLS服务器和客户端\t187 14.4.1 构建TLS服务器\t187 14.4.2 构建TLS客户端\t188 14.4.3 运行应用\t189 14.5 上机演练\t190 练习一:生成自签名SSL证书和私钥\t190 练习二:构建TLS服务器和客户端\t191 14.6 本章小结\t192 第 15 章 常用Web中间件\t193 15.1 Express\t193 15.1.1 安装Express\t193 15.1.2 实战:编写“Hello World”应用\t195 15.1.3 运行“Hello World”应用\t195 15.1.4 实战:使用Express构建REST API\t195 15.1.5 测试Express的REST API\t198 15.2 Socket.IO\t201 15.2.1 Socket.IO的主要特点\t201 15.2.2 安装Socket.IO\t202 15.2.3 实战:编写Socket.IO服务器\t203 15.2.4 实战:编写Socket.IO客户端\t204 15.2.5 运行应用\t205 15.3 上机演练\t206 练习一:使用Express构建REST服务\t206 练习二:使用Socket.IO实现一个简单的实时聊天应用\t207 15.4 本章小结\t209 第 16 章 Vue.js与响应式编程\t210 16.1 常见UI框架Vue.js\t210 16.1.1 Vue.js与jQuery的不同\t210 16.1.2 Vue.js的下载和安装\t212 16.1.3 实战:创建Vue.js应用\t214 16.2 了解Observable机制\t217 16.2.1 了解Observable的基本概念\t218 16.2.2 定义观察者\t218 16.2.3 执行订阅\t219 16.2.4 创建Observable对象\t220 16.2.5 实现多播\t221 16.2.6 处理错误\t223 16.3 了解RxJS技术\t224 16.3.1 创建Observable对象的函数\t224 16.3.2 了解操作符\t225 16.3.3 处理错误\t226 16.4 了解Vue.js中的reactive\t227 16.5 上机演练\t229 练习一:探索Vue.js与jQuery的不同\t229 练习二:使用create-vue创建并运行Vue.js应用\t231 练习三:理解Vue.js中的响应式和Observable机制\t231 16.6 本章小结\t232 第 17 章 操作MySQL\t233 17.1 下载安装MySQL\t233 17.1.1 下载安装包\t233 17.1.2 解压安装包\t233 17.1.3 创建my.ini\t234 17.1.4 初始化安装\t234 17.1.5 启动MySQL Server\t234 17.1.6 使用MySQL客户端\t235 17.1.7 关闭MySQL Server\t235 17.2 MySQL的基本操作\t236 17.3 实战:使用Node.js操作MySQL\t237 17.3.1 安装mysql模块\t237 17.3.2 实现简单的查询\t239 17.3.3 运行应用\t239 17.4 深入理解mysql模块\t242 17.4.1 建立连接\t242 17.4.2 连接选项\t243 17.4.3 关闭连接\t244 17.4.4 执行CURD\t245 17.5 上机演练\t247 练习一:安装并配置MySQL\t247 练习二:使用Node.js操作MySQL进行基本数据库操作\t248 练习三:深入理解mysql模块的使用\t250 17.6 本章小结\t251 第 18 章 操作MongoDB\t252 18.1 安装MongoDB\t252 18.1.1 MongoDB简介\t252 18.1.2 下载和安装MongoDB\t253 18.1.3 启动MongoDB服务\t254 18.1.4 连接到MongoDB服务器\t254 18.2 MongoDB的基本操作\t255 18.2.1 显示已有的数据库\t255 18.2.2 创建和使用数据库\t255 18.2.3 插入文档\t256 18.2.4 查询文档\t259 18.2.5 修改文档\t264 18.2.6 删除文档\t269 18.3 实战:使用Node.js操作MongoDB\t270 18.3.1 安装mongodb模块\t270 18.3.2 实现访问MongoDB\t272 18.3.3 运行应用\t272 18.4 深入理解mongodb模块\t273 18.4.1 建立连接\t273 18.4.2 插入文档\t273 18.4.3 查找文档\t274 18.4.4 修改文档\t276 18.4.5 删除文档\t277 18.5 上机演练\t278 练习一:安装MongoDB并连接查看数据库\t278 练习二:在Node.js应用中操作MongoDB\t278 练习三:深入理解Node.js中的mongodb模块操作\t279 18.6 本章小结\t280 第 19 章 操作Redis\t281 19.1 下载和安装Redis\t281 19.1.1 Redis简介\t281 19.1.2 在Linux平台上安装Redis\t282 19.1.3 在Windows平台上安装Redis\t283 19.2 Redis的数据类型及基本操作\t284 19.2.1 Redis key\t284 19.2.2 Redis String\t285 19.2.3 修改和查询key空间\t286 19.2.4 Redis超时\t287 19.2.5 Redis List\t287 19.2.6 使用Redis List的第一步\t288 19.2.7 List常见的用例\t289 19.2.8 列表\t289 19.3 实战:使用Node.js操作Redis\t290 19.3.1 安装redis模块\t290 19.3.2 实现访问Redis\t291 19.3.3 运行应用\t292 19.4 上机演练\t293 练习一:安装Redis并测试连接\t293 练习二:使用Redis存储和检索数据\t293 练习三:使用Redis List实现消息队列\t294 19.5 本章小结\t295 第 20 章 综合实战:基于WebSocket的即时聊天应用\t296 20.1 应用概述\t296 20.2 实现后台服务器\t297 20.2.1 初始化websocket-chat\t297 20.2.2 访问静态文件资源\t298 20.2.3 事件处理\t299 20.3 实现前台客户端\t300 20.3.1 页面HTML及样式设计\t300 20.3.2 业务逻辑\t302 20.4 运行效果\t309 20.5 上机演练\t313 练习一:初始化WebSocket聊天应用\t313 练习二:配置静态文件服务和事件处理\t314 练习三:完善前台客户端\t315 20.6 本章小结\t316 参考文献\t317 |