新書推薦:
《
可转债投资实战
》
售價:HK$
99.7
《
王氏之死(新版,史景迁成名作)
》
售價:HK$
54.9
《
敢为天下先:三年建成港科大
》
售價:HK$
77.3
《
长高食谱 让孩子长高个的饮食方案 0-15周岁儿童调理脾胃食谱书籍宝宝辅食书 让孩子爱吃饭 6-9-12岁儿童营养健康食谱书大全 助力孩子身体棒胃口好长得高
》
售價:HK$
47.0
《
身体自愈力:解决内在病因的身体智慧指南
》
售價:HK$
98.6
《
非言语沟通经典入门:影响人际交往的重要力量(第7版)
》
售價:HK$
123.1
《
山西寺观艺术壁画精编卷
》
售價:HK$
1680.0
《
中国摄影 中式摄影的独特魅力
》
售價:HK$
1097.6
|
編輯推薦: |
Node.js不仅可以用来构建后端应用程序,还为前端开发提供了新的机遇。现在拥有JavaScript经验的开发人员可以同时在前端和后端使用Node.js,降低了语言导致的过渡成本。本书详解Node.js后端和Node.js前端技术,能使Web前端开发人员快速掌握Node.js。
|
內容簡介: |
全书共9章,主要介绍了Nodejs web开发中常用类库、http、express、egg、ws、socket.io、pemolo等热门框架学习,内容涵盖市场上大部分的开发工作。
|
關於作者: |
夏磊,毕业于湖南工业大学网络工程专业,拥有多年研发经验。在过去的几年里,他还是很多开源项目的贡献者。精通PHP脚本开发、Node.jsGolang服务端开发以及JavaScript开发,善于把握与应用新技术,博客和公众号上有大量的Web相关技术文章,深受读者好评。著有图书《ThinkPHP实战》和《ThinkPHP5实战》。
|
目錄:
|
第一部分 Node.js基础篇
第1章 Node.js概述 3
1.1 NODE.JS是什么 3
1.2 NODE.JS的运行原理 5
1.3 NODE.JS的应用场景 6
1.3.1 Node.js优缺点 6
1.3.2 应用场景 7
1.4 本章小结 7
第2章 搭建Node.js开发环境 8
2.1 安装NODE.JS 8
2.1.1 Windows上安装Node.js 8
2.1.2 Linux安装Node.js 9
2.1.3 Ubuntu安装Node.js 9
2.1.4 CentOS安装Node.js 9
2.1.5 macOS安装Node.js 10
2.2 安装VSCODE编辑器 10
2.3 编写HTTP服务器 11
2.4 本章小结 12
第3章 Node.js编程基础 13
3.1 NPM包管理器介绍 13
3.1.1 更换NPM镜像源 13
3.1.2 初始化项目 14
3.1.3 使用npm命令安装模块 14
3.1.4 本地安装与全局安装 14
3.1.5 生产依赖和开发依赖 15
3.1.6 其他npm命令 15
3.2 YARN包管理器介绍 16
3.2.1 安装Yarn 16
3.2.2 Yarn常用命令 16
3.3 解读PACKAGE.JSON文件 16
3.3.1 package.json字段说明 17
3.3.2 版本号说明 18
3.3.3 常见的版本号限定符 18
3.4 NODE.JS的模块系统 18
3.4.1 module和exports 19
3.4.2 require 20
3.4.3 开发一个自定义模块 21
3.5 NODE.JS的异步编程风格 22
3.5.1 回调函数 22
3.5.2 Promise 23
3.5.3 asyncawait 26
3.6 NODE.JS常用核心模块 28
3.6.1 events模块 28
3.6.2 fs模块 29
3.6.3 stream接口 32
3.6.4 http模块 35
3.7 本章小结 36
第二部分 后端的Node.js
第4章 最流行的Web框架Express 39
4.1 框架简介 39
4.2 快速开始 40
4.2.1 初始化项目 40
4.2.2 开始编码 40
4.2.3 运行应用 41
4.2.4 小结 41
4.3 路由 41
4.3.1 路由方法 42
4.3.2 路由路径 42
4.3.3 路由参数 44
4.3.4 路由函数 45
4.4 请求对象 47
4.4.1 获取请求Cookie 49
4.4.2 获取请求体 50
4.5 响应对象 50
4.6 中间件 54
4.6.1 全局中间件 54
4.6.2 路由中间件 55
4.6.3 可配置的中间件 55
4.6.4 Cookie中间件 57
4.6.5 响应时长中间件 57
4.6.6 静态资源中间件 58
4.7 错误处理 59
4.7.1 同步错误 59
4.7.2 异步错误 60
4.7.3 自定义错误处理函数 60
4.7.4 多个错误处理函数 61
4.8 模板渲染 62
4.8.1 使用ejs模板 62
4.8.2 ejs语法 63
4.9 留言板项目开发 65
4.9.1 开始编码 65
4.9.2 运行项目 67
4.10 本章小结 68
第5章 下一代Web开发框架Koa 70
5.1 KOA简介 70
5.2 BLUEBIRD 71
5.3 KOA快速开始 72
5.3.1 初始化项目 72
5.3.2 开始编码 73
5.4 CONTEXT 73
5.5 COOKIE操作 75
5.5.1 Cookie签名 75
5.5.2 写入Cookie 75
5.5.3 读取Cookie 76
5.5.4 中间件 76
5.5.5 请求日志中间件 78
5.5.6 可配置的中间件 79
5.5.7 Cookie解析中间件 80
5.5.8 路由函数 81
5.5.9 多个路由函数 81
5.5.10 错误处理 82
5.5.11 多个错误处理器 83
5.6 路由系统 84
5.6.1 快速开始 85
5.6.2 路由对象 85
5.6.3 路由路径 86
5.6.4 路由函数 86
5.6.5 路由级别中间件 87
5.6.6 路由前缀 87
5.6.7 模块化路由 88
5.7 模板渲染 89
5.7.1 快速开始 89
5.7.2 模板布局 90
5.8 博客项目实战 92
5.8.1 功能梳理 92
5.8.2 项目代码 93
5.8.3 效果展示 100
5.8.4 项目小结 102
5.9 本章小结 102
第6章 文档型NoSQL数据库MongoDB 103
6.1 简介 103
6.1.1 主要特点 103
6.1.2 概念 104
6.1.3 数据库 104
6.1.4 集合 105
6.1.5 文档 105
6.2 安装 106
6.2.1 Windows 106
6.2.2 Linux 107
6.2.3 macOS 108
6.3 常用操作 109
6.3.1 创建数据库 109
6.3.2 删除数据库 109
6.3.3 创建集合 110
6.3.4 查看集合 110
6.3.5 删除集合 110
6.3.6 索引 111
6.3.7 插入文档 112
6.3.8 更新文档 112
6.3.9 删除文档 113
6.3.10 查询文档 113
6.3.11 其他查询语法 115
6.4 NODE.JS集成 116
6.4.1 初始化项目 116
6.4.2 连接数据库 116
6.4.3 mongoose的关键概念 117
6.4.4 Schema 117
6.4.5 Model 120
6.5 本章小结 121
第7章 最流行的关系型数据库MySQL 123
7.1 简介 123
7.2 安装 123
7.2.1 Windows 124
7.2.2 Linux 124
7.2.3 macOS 126
7.3 术语 126
7.4 索引 127
7.4.1 普通索引 127
7.4.2 唯一索引 127
7.4.3 联合索引 128
7.5 事务 128
7.5.1 ACID原则 128
7.5.2 事务并发问题 129
7.5.3 隔离级别 129
7.5.4 事务控制语句 129
7.6 关联关系 130
7.6.1 一对多关联 130
7.6.2 一对一关联 131
7.6.3 多对多关联 131
7.7 数据库操作 132
7.8 数据类型 133
7.9 数据表操作 135
7.9.1 创建数据表 135
7.9.2 删除数据表 136
7.9.3 添加字段 136
7.9.4 删除字段 137
7.9.5 修改字段 137
7.10 数据操作 137
7.10.1 插入数据 137
7.10.2 查询数据 138
7.10.3 修改数据 139
7.10.4 删除数据 139
7.11 本章小结 140
第8章 ORM框架Sequelize 141
8.1 ORM 141
8.2 SEQUELIZE简介 142
8.3 快速开始 142
8.4 构造方法 143
8.5 数据类型 144
8.6 模型定义 146
8.6.1 字段设置 146
8.6.2 模型选项 147
8.6.3 Hooks 148
8.6.4 生命周期函数 149
8.6.5 模型验证器 150
8.6.6 模型方法 155
8.6.7 索引 156
8.6.8 数据库同步 157
8.7 模型使用 157
8.7.1 插入数据 158
8.7.2 更新数据 159
8.7.3 删除数据 160
8.7.4 查询数据 161
8.7.5 查询语法 164
8.7.6 事务 165
8.8 关联 167
8.8.1 hasOne 167
8.8.2 belongsTo 169
8.8.3 hasMany 171
8.8.4 belongsToMany 173
8.9 本章小结 175
第9章 微博项目开发 176
9.1 功能分析 176
9.2 数据模型 177
9.3 开始编码 177
9.3.1 初始化项目 177
9.3.2 项目目录 178
9.3.3 路由设计 178
9.3.4 共享组件 178
9.3.5 中间件 179
9.3.6 模型代码 180
9.3.7 生成数据表 183
9.3.8 业务代码 184
9.3.9 路由代码 188
9.3.10 视图文件 192
9.3.11 Web应用引导文件 193
9.4 效果展示 194
9.5 项目代码 196
9.6 本章小结 196
第10章 高性能内存型NoSQL数据库Redis 197
10.1 REDIS简介 197
10.1.1 特点 197
10.1.2 应用场景 198
10.2 REDIS安装 198
10.2.1 在Windows下安装Redis 198
10.2.2 在Linux下安装Redis 199
10.2.3 在macOS下安装 Redis 199
10.3 REDIS支持的数据结构 200
10.3.1 String(字符串) 200
10.3.2 哈希表(Hash) 201
10.3.3 列表(List) 202
10.3.4 集合(Set) 203
10.3.5 有序集合(ZSet) 203
10.3.6 发布订阅 204
10.4 NODE.JS集成REDIS 205
10.4.1 快速开始 205
10.4.2 Promise 206
10.5 本章小结 207
第11章 实时双向Web技术WebSocket 208
11.1 传统的实时WEB技术 208
11.1.1 Ajax轮询(Ajax Polling) 208
11.1.2 服务器推送(Comet) 209
11.2 WEBSOCKET 209
11.3 实现WEBSOCKET握手协议 210
11.3.1 握手协议过程 211
11.3.2 服务端代码 211
11.3.3 客户端代码 212
11.4 使用WS模块开发聊天室 212
11.4.1 安装依赖 213
11.4.2 服务端代码 213
11.4.3 客户端代码 214
11.5 本章小结 215
第三部分 前端中的Node.js
第12章 迅速发展的前端技术 219
12.1 模块系统 219
12.1.1 CommonJS 220
12.1.2 AMD 220
12.1.3 CMD 221
12.1.4 ES6模块化 221
12.2 新语言 222
12.2.1 ES6 222
12.2.2 TypeScript 222
12.2.3 Less 223
12.2.4 SCSS 223
12.3 新框架 224
12.3.1 AngularJS 224
12.3.2 React 224
12.3.3 Vue 224
12.3.4 Angular 225
12.4 构建工具 225
12.4.1 Grunt 226
12.4.2 Gulp 226
12.4.3 Webpack 227
12.5 本章小结 228
第13章 Webpack起步 229
13.1 安装 229
13.2 示例项目 230
13.3 LOADER 231
13.3.1 CSS处理 231
13.3.2 图片处理 232
13.4 PLUGIN 234
13.4.1 提取CSS 234
13.4.2 自动更新HTML中的资源引用 236
13.5 开发服务器 237
13.6 核心概念 239
13.7 本章小结 239
第14章 Webpack配置 240
14.1 MODE 241
14.2 ENTRY 和 CONTEXT 241
14.2.1 不配置Context的情况 241
14.2.2 配置Context的情况 242
14.3 OUTPUT 242
14.3.1 chunkFilename 243
14.3.2 path 243
14.3.3 publicPath 244
14.3.4 libraryTarget和library 244
14.4 MODULE 246
14.4.1 noParse 246
14.4.2 rules 247
14.5 RESOLVE 248
14.5.1 alias 248
14.5.2 extensions 249
14.5.3 mainFields 249
14.5.4 modules 250
14.6 DEVTOOL 250
14.7 EXTERNALS 250
14.8 DEVSERVER 251
14.9 PLUGINS 252
14.10 完整示例 252
14.11 本章小结 254
第15章 Vue实战 255
15.1 HELLO WORLD 255
15.2 配置WEBPACK 257
15.2.1 Loader和Plugin 257
15.2.2 安装依赖模块 257
15.2.3 编写配置文件 258
15.2.4 执行构建 259
15.3 生产构建 259
15.3.1 Webpack配置 259
15.3.2 package.json修改 260
15.4 TYPESCRIPT支持 261
15.4.1 TypeScript配置 261
15.4.2 Webpack配置 262
15.4.3 App.vue 263
15.5 本章小结 264
第16章 React实战 265
16.1 JSX 265
16.2 BABEL 266
16.3 TYPESCRIPT 268
16.4 本章小结 271
第17章 服务端渲染 272
17.1 SSR原理 273
17.2 添加SSR的WEBPACK.CONFIG.JS 273
17.3 添加SSR的入口文件 274
17.4 添加SSR打包命令 275
17.5 执行构建 275
17.6 添加NODE.JS HTTP服务器 275
17.7 目录结构 276
17.8 运行应用 276
17.9 本章小结 277
第18章 多页应用脚手架 278
18.1 项目结构 278
18.2 开发步骤 279
18.2.1 初始化项目与安装依赖 279
18.2.2 配置 280
18.3 业务代码 282
18.4 本章小结 283
第19章 性能优化 284
19.1 限定WEBPACK处理文件范围 284
19.2 DLLPLUGIN 285
19.3 HAPPYPACK 287
19.4 TREE-SHAKING 288
19.5 按需加载 289
19.6 提取公共代码 289
19.7 热更新 290
19.8 本章小结 290
第20章 编写自定义Loader 291
20.1 基本LOADER 291
20.2 LOADER选项 293
20.3 异步LOADER 294
20.4 "RAW" LOADER 295
20.5 读取LOADER配置文件 295
20.5.1 项目结构 295
20.5.2 执行构建 297
20.6 本章小结 297
第21章 编写自定义插件 298
21.1 基本构建流程 298
21.2 插件示例 299
21.3 COMPILER与COMPILATION对象 299
21.4 TAPABLE 300
21.5 常用操作 301
21.5.1 读取输出资源、模块及依赖 301
21.5.2 修改输出资源 302
21.6 插件编写实例 302
21.6.1 生成清单文件 303
21.6.2 构建结果上传到CDN 304
21.7 本章小结 306
|
內容試閱:
|
Node.js是一个基于Chrome V8引擎的JavaScript运行环境,用于构建高速、可伸缩的网络应用程序。
事实上,Node.js不仅仅用来构建网络应用程序,还为前端开发提供了新的机遇。现在拥有JavaScript经验的开发人员可以在前端和后端使用Node.js,降低了语言导致的过渡成本。Node.js拥有一个巨大的JavaScript生态系统,再加上这几年前端的发展,出现了许多新框架和新语言,但是对于初次接触Node.js的用户来说是不太友好的,再加上缺乏系统性的指南,导致前端开发者无法有效地学好Node.js,作者编著本书希望对改变这种情况尽绵薄之力。
关于本书
第一部分 Node.js基础
第一部分是对Node.js的介绍,涵盖了它的原理和基础知识。
第1章介绍Node.js的原理和应用场景。
第2章介绍如何在计算机上安装Node.js以及Visual Studio Code编辑器。我们将用一个简单的HTTP服务器来测试Node.js是否成功安装。
第3章介绍Node.js的编程基础。内容包括NPM、模块系统、异步编程方式和常用模块。
第二部分 后端的Node.js
第二部分是对后端Node.js的介绍,涵盖了主流的Web框架和常用组件,包含数据库、缓存,等等。
第4章详细介绍Express开发框架,这是最早也是最流行的Node.js Web开发框架。内容包括Express的请求路由、请求与响应、中间件、错误处理和页面渲染。最后演示如何使用Express框架开发留言板系统。
第5章详细介绍Koa框架。Koa框架被称为下一代的Web开发框架,Koa的一切皆为中间件思想被其他Web框架广泛地采用。本章内容包括Koa的上下文对象、中间件模型、请求路由、错误处理和模板渲染。最后演示如何使用Koa开发博客系统。
第6章介绍MongoDB数据库。MongoDB通常被称为Node.js的黄金搭档,因为MongoDB采用了BeJSON的结构,对JavaScript有天然的亲和性。本章内容包括MongoDB的安装、基础使用和Node.js对MongoDB的操作。
第7章介绍MySQL数据库,这是目前最流行的、开源的关系型数据库系统。内容包括MySQL的安装、基础语法、关联关系和事务操作,为后续的实战项目打下基础。
第8章介绍ORM框架Sequelize,Sequelize一个操作MySQL的框架,能够通过对象的方式操作数据库。本章内容包括Sequelize模型、关联关系、对数据的操作和事务的使用。
第9章介绍一个完整的实战项目开发过程。我们将基于Koa和Sequelize来开发一个微博系统,带领大家学习一个完整项目的研发流程。
第10章介绍高性能内存型NoSQL数据库Redis,Redis常用在高并发场景,比如秒杀活动、抽奖、排行榜等。本章内容包括Redis的基础知识,数据结构以及Node.js对Redis的操作。
第11章介绍实时Web通信技术WebSocket,WebSocket的出现赋予了Web应用更多的可能性。本章内容包括传统的实时Web技术、WebSocket协议的原理以及使用Node.js实现WebSocket服务器,最后演示如何使用Node.js来构建一个在线聊天室。
第三部分 前端的Node.js
第三部分介绍前端的发展以及Node.js在前端的应用,重点介绍目前最流行的构建工具Webpack。
第12章介绍前端的发展现状,包括模块系统、新语言、新框架和新的构建工具。
第13章介绍Webpack的基础使用和核心概念,包括如何一步一步对Webpack进行配置以及Loader和Plugin的使用。
第14章详细介绍Webpack的常用配置。
第15章介绍如何使用Webpack构建Vue应用,包括构建Vue应用需要的模块、相应的配置和导入TypeScript支持。
第16章介绍如何使用Webpack构建React应用,包括JSX语法、Babel工具、Webpack的配置以及导入TypeScript支持。
第17章介绍服务端渲染技术和同构应用的开发,包括服务端渲染技术的原理以及如何使用Webpack构建同构应用,最后演示如何构建一个React的同构应用。
第18章详细介绍如何使用Webpack构建传统多页面Web应用。
第19章详细介绍Webpack性能优化的常用手段,包括优化配置、提取公共代码、多进程编译、按需加载和热更新的知识。
第20章介绍Webpack自定义Loader的编写,包括基本Loader、Loader配置、异步Loader等知识,最后演示如何编写一个多语言Loader。
第21章介绍Webpack自定义Plugin的编写,包括Webpack构建流程、Compiler和Compilation、Tapable对象和常用API,最后演示清单文件插件的编写以及将构建结果上传到CDN插件的编写。
示例代码下载
本书提供了丰富的示例,演示如何利用每个所学的知识点。本书的源码已经托管到GitHub网站,读者可以通过https:github.comnodejs-inaction链接进行访问及下载。也可以扫描下面的二维码下载。
如果你在下载过程中遇到问题,可发送邮件至booksaga@163.com获得帮助,邮件标题为Node.js Webpack开发实战。
关于作者
夏磊,毕业于湖南工业大学网络工程专业,拥有多年研发经验。在过去的几年里,他还是很多开源项目的贡献者。精通PHP脚本开发、Node.jsGolang服务端开发以及JavaScript开发,善于把握与应用新技术,博客和公众号上有大量的Web相关技术文章,深受读者好评。著有图书《ThinkPHP实战》和《ThinkPHP5实战》。
著者
2020年5月
|
|