关于本书的内容有任何问题,请联系 桑珊
第 1章 Node.js入门 1 1.1 Node.js简介 1 1.1.1 什么是Node.js 1 1.1.2 Node.js的特点 2 1.1.3 Node.js的应用场合 5 1.2 部署Node.js开发环境 6 1.2.1 在Windows系统上安装Node.js 6 1.2.2 在Linux系统上安装Node.js 7 1.2.3 管理Node.js版本 8 1.2.4 交互式运行环境——REPL 9 1.2.5 安装开发工具Visual Studio Code 10 1.3 开始开发Node.js应用程序 10 1.3.1 实战演练——构建第 一个Node.js应用程序 10 1.3.2 运行Node.js程序 12 1.3.3 调试Node.js程序 13 1.4 本章小结 16 习题 16 第 2章 Node.js编程基础 17 2.1 JavaScript基本语法 17 2.1.1 JavaScript版本 17 2.1.2 JavaScript运行环境 18 2.1.3 JavaScript语句与注释 18 2.1.4 变量 19 2.1.5 数据类型 21 2.1.6 流程控制 23 2.1.7 函数 24 2.1.8 类 27 2.1.9 严格模式 28 2.1.10 JavaScript编程规范 29 2.2 Node.js回调函数 30 2.2.1 什么是回调函数 30 2.2.2 回调函数示例 31 2.3 Node.js事件机制 31 2.3.1 事件循环 32 2.3.2 Node.js事件的监听与触发 33 2.4 Node.js全局对象 34 2.4.1 全局变量__filename和__dirname 35 2.4.2 console模块 35 2.4.3 process对象 36 2.5 Node.js的定时器 39 2.5.1 设置定时器 39 2.5.2 取消定时器 40 2.5.3 Timeout和Immediate类 40 2.5.4 setImmediate()方法 与setTimeout()方法的对比 40 2.5.5 process.nextTick()与setImmediate()的对比 41 2.6 Buffer数据类型 41 2.6.1 创建Buffer实例 42 2.6.2 Buffer用于编码转换 42 2.6.3 将Buffer实例转换为JSON对象 43 2.6.4 Buffer实例基本操作 43 2.7 Node.js的流 45 2.7.1 概述 45 2.7.2 可读流 46 2.7.3 可写流 47 2.7.4 管道读写操作 48 2.8 实战演练——提供图片浏览服务 49 2.8.1 实现思路 49 2.8.2 编写代码 50 2.8.3 运行程序 51 2.9 本章小结 52 习题 52 第3章 模块与包的管理和使用 54 3.1 Node.js的模块系统 54 3.1.1 Node.js为什么要使用模块 54 3.1.2 自定义模块 55 3.1.3 导入模块 55 3.1.4 使用module.exports定义模块 55 3.1.5 exports与module.exports的关系 56 3.1.6 模块加载顺序 57 3.2 使用Node.js的核心模块 59 3.2.1 os模块——提供基本的系统操作方法 59 3.2.2 util模块——提供实用工具 60 3.2.3 path模块——处理和转换文件路径 62 3.2.4 url模块——URL处理与解析 63 3.2.5 querystring模块——URL查询字符串处理和解析 64 3.3 Node.js包的管理与使用 65 3.3.1 什么是npm 65 3.3.2 理解包与模块 66 3.3.3 npm包管理器 66 3.3.4 查找和选择包 66 3.3.5 使用npm命令安装包 70 3.3.6 使用语义版本控制管理代码(包) 71 3.3.7 使用package.json文件管理本地安装包 72 3.3.8 包的其他操作 74 3.3.9 使用淘宝npm镜像 74 3.4 实战演练——抓取网页中的图片 75 3.4.1 技术准备 75 3.4.2 实现思路 76 3.4.3 创建项目目录并准备package.json文件 76 3.4.4 安装request和cheerio包 77 3.4.5 定义一个模块用于解析网页文档 77 3.4.6 编写主入口文件index.js 77 3.4.7 运行程序 78 3.5 本章小结 79 习题 79 第4章 文件系统操作 80 4.1 Node.js的文件系统基础 80 4.1.1 fs模块简介 80 4.1.2 同步文件操作与异步文件操作 81 4.1.3 文件路径 82 4.1.4 文件模式 83 4.1.5 文件系统标志 84 4.1.6 文件描述符 84 4.2 文件与目录基本操作 85 4.2.1 打开文件 85 4.2.2 获取文件信息 85 4.2.3 读取文件 87 4.2.4 写入文件 88 4.2.5 文件的其他基本操作 90 4.2.6 目录的基本操作 91 4.3 文件系统的高级操作 92 4.3.1 使用文件操作的流接口 92 4.3.2 文件遍历 93 4.3.3 文件监视 94 4.3.4 操作JSON文件 96 4.3.5 读取GBK格式的文件 97 4.4 实战演练——操作表格文件 98 4.4.1 使用CSV包的准备工作 98 4.4.2 从CSV文件中读取并解析数据 98 4.4.3 将记录转换为CSV文本并保存到CSV文件中 100 4.4.4 对CSV数据进行转换处理 100 4.4.5 组合使用多个子模块来处理CSV数据 101 4.5 本章小结 101 习题 101 第5章 网络编程 103 5.1 TCP服务器与客户端 103 5.1.1 TCP基础 103 5.1.2 net模块提供的API 104 5.1.3 创建TCP服务器和客户端 106 5.1.4 接收和处理物联网数据 107 5.2 UDP服务器与客户端 108 5.2.1 UDP基础 108 5.2.2 dgram模块提供的API 109 5.2.3 创建UDP服务器和客户端 110 5.2.4 通过UDP实现文件上传 111 5.3 HTTP服务器和客户端 112 5.3.1 HTTP基础 112 5.3.2 实现HTTP服务器 112 5.3.3 实现HTTP客户端 115 5.3.4 HTTP服务器获取并解析请求内容 117 5.4 使用WebSocket实现浏览器与服务器的实时通信 119 5.4.1 WebSocket简介 119 5.4.2 使用Node.js实现WebSocket服务器和客户端 120 5.4.3 浏览器客户端 122 5.4.4 Socket.IO 123 5.5 实战演练——构建实时聊天室 126 5.5.1 准备Web框架 126 5.5.2 编写服务器端程序 128 5.5.3 编写客户端程序 129 5.5.4 测试 130 5.5 本章小结 131 习题 131 第6章 SQL数据库操作 133 6.1 操作MySQL数据库 133 6.1.1 MySQL服务器安装和基本使用 133 6.1.2 Node.js的MySQL驱动 136 6.1.3 连接MySQL数据库 136 6.1.4 执行数据库操作 137 6.1.5 记录的增查改删操作 138 6.1.6 防止SQL注入攻击 139 6.1.7 使用流式查询 140 6.1.8 使用预处理语句 140 6.1.9 使用连接池 141 6.2 优雅地编写异步代码 142 6.2.1 Promise 142 6.2.2 Generator 144 6.2.3 co模块 146 6.2.4 async/await 147 6.2.5 使用Promise包装器操作MySQL数据库 151 6.3 使用Node.js ORM框架操作关系数据库 152 6.3.1 Sequelize简介 152 6.3.2 Sequelize的基本使用 152 6.3.3 使用Sequelize的关联 156 6.4 实战演练——图书借阅记录管理 158 6.4.1 编写模型部分代码 158 6.4.2 编写数据操作部分代码 159 6.5 本章小结 161 习题 161 第7章 MongoDB数据库操作 163 7.1 MongoDB数据库基础 163 7.1.1 NoSQL数据库简介 163 7.1.2 MongoDB数据库简介 164 7.1.3 MongoDB基本概念 164 7.1.4 MongoDB的安装和基本使用 166 7.2 使用原生驱动连接和操作MongoDB数据库 168 7.2.1 连接到MongoDB 169 7.2.2 添加MongoDB文档 169 7.2.3 查询MongoDB文档 170 7.2.4 更改MongoDB文档 171 7.2.5 删除MongoDB文档 172 7.2.6 为MongoDB集合创建索引 172 7.2.7 以“同步”方式编写MongoDB操作代码 172 7.3 使用Mongoose操作MongoDB数据库 173 7.3.1 Mongoose基本概念 173 7.3.2 使用Mongoose的基本步骤 174 7.3.3 文档操作 177 7.3.4 数据验证 180 7.3.5 中间件 181 7.3.6 子文档 183 7.3.7 Mongoose对Promise的支持 184 7.4 实战演练——开发图书使用管理操作接口 184 7.4.1 Mongoose的填充功能 185 7.4.2 模式和模型定义 186 7.4.3 编写数据库操作接口 187 7.4.4 调用数据库操作接口 188 7.5 本章小结 189 习题 189 第8章 Node.js框架与Express 190 8.1 Node.js框架概述 190 8.1.1 MVC框架 190 8.1.2 REST API框架 191 8.1.3 全栈框架 191 8.1.4 实时框架 192 8.1.5 Node.js框架的选择 192 8.2 Express框架基础 192 8.2.1 简单的“Hello World”示例程序 193 8.2.2 使用Express生成器创建项目脚手架 193 8.2.3 Express工作机制 195 8.3 Express路由 197 8.3.1 路由结构 197 8.3.2 路由方法 197 8.3.3 路由路径 198 8.3.4 路由参数 198 8.3.5 路由处理程序 199 8.3.6 响应方法 200 8.3.7 app.route()方法 200 8.3.8 Express路由器 201 8.4 Express中间件 201 8.4.1 进一步理解中间件 202 8.4.2 使用中间件 202 8.4.3 编写自己的中间件 205 8.5 视图与模板引擎 207 8.5.1 模板引擎概述 207 8.5.2 EJS语法 208 8.5.3 EJS模板引擎的使用 209 8.6 Express与数据库集成 210 8.7 Express错误处理 211 8.7.1 捕获错误 211 8.7.2 默认错误处理程序 212 8.7.3 编写错误处理程序 212 8.8 实战演练——图书信息管理的REST API接口 213 8.8.1 了解REST API 213 8.8.2 演练目标 215 8.8.3 实现思路与技术准备 215 8.8.4 创建项目 216 8.8.5 编写数据库接口程序 216 8.8.6 编写主入口文件 218 8.8.7 运行程序进行测试 220 8.8.8 控制API版本 221 8.9 本章小结 222 习题 222 第9章 应用程序测试与部署 224 9.1 Node.js应用程序的单元测试 224 9.1.1 单元测试概述 224 9.1.2 使用断言编写简单的测试脚本 225 9.1.3 使用测试框架Mocha进行单元测试 229 9.2 实战演练——为应用程序进行单元测试 232 9.2.1 熟悉supertest测试库 232 9.2.2 编写测试脚本 235 9.2.3 执行自动化测试 236 9.3 Node.js应用程序的部署和运行管理 237 9.3.1 Node.js应用程序的部署方式 237 9.3.2 让Node.js应用程序更稳定地运行 238 9.3.3 使用PM2管理Node.js应用程序 239 9.3.4 使用PM2的配置文件管理应用程序 241 9.3.5 在Windows平台上配置开机自动启动Node.js应用程序 243 9.4 本章小结 246 习题 246 第 10章 综合实例——构建博客网站 248 10.1 项目准备 248 10.1.1 项目概述 248 10.1.2 创建项目脚手架 249 10.2 数据库设计与实现 250 10.2.1 数据存储和组织技术 250 10.2.2 定义存储文章信息的模型 251 10.2.3 定义存储用户信息的模型 253 10.3 用户界面设计与实现 255 10.3.1 前端技术 256 10.3.2 静态文件 256 10.3.3 公共模板 257 10.3.4 内容模板 258 10.4 业务逻辑设计与实现 260 10.4.1 使用passport实现用户认证 260 10.4.2 session控制 263 10.4.3 使用Express中间件 264 10.4.4 定义控制器处理具体业务 268 10.4.5 路由控制 271 10.4.6 主文件 272 10.5 本章小结 273 习题 273
本书以 Node.js 知识和框架为主线,详细介绍Node.js 开发的基础知识。全书分为10 章,内容包括N...
本书通过大量案例详细讲解了Java程序设计的基础知识,共12章,内容包括:Java基础知识,基本类型及运算符,...
JavaScript是目前非常流行的网页前端开发技术之一。本书利用大量案例深入浅出地介绍了JavaScript...
本书详细讲解了Android软件开发的基本方法和常用技能。全书分为9章,内容包括Android入门、Andro...
MySQL是目前流行的采用客户端/服务器的关系型SQL数据库管理系统之一。本书利用大量案例深入浅出地介绍了使用...
本书通过不断调整与优化,形成了结构合理、循序渐进、容量适度的10个教学单元:计算机基础知识、计算机硬件基础、计...
本书是面向PHP语言和MySQL数据库初学者的一本入门教材,使用通俗易懂的语言、丰富的图解和实用的案例,详细讲...
本书为Java基础入门教材,适合初学者使用。全书共13章,第1~2章主要讲解Java技术的一些基础知识,内容包...
本书全面、系统地介绍银河麒麟桌面操作系统的基础知识、WPS Office的基本操作,以及其他信息技术的相关内容...
本书是一本面向Web前端开发学习者的教材,以任务驱动式的体例与通俗易懂的语言,详细讲解jQuery的基础知识。...
我要评论