新書推薦:
《
女人的胜利
》
售價:HK$
55.9
《
数据有道:数据分析+图论与网络+微课+Python编程(鸢尾花数学大系:从加减乘除到机器学习)
》
售價:HK$
266.6
《
500万次倾听:陪伤心的人聊聊
》
售價:HK$
53.8
《
英国商业500年(见证大国崛起与企业兴衰,启迪未来商业智慧。)
》
售價:HK$
80.6
《
万千心理·儿童心理治疗中的心智化:临床实践指导
》
售價:HK$
87.4
《
自我囚禁的人:完美主义的心理成因与自我松绑(破除你对完美主义的迷思,尝试打破自我评价过低与焦虑的恶性循环)
》
售價:HK$
66.1
《
周易
》
售價:HK$
44.6
《
东南亚的传统与发展
》
售價:HK$
67.2
|
編輯推薦: |
Node.js是一门开源的、为Web而生的语言,具有高并发、异步等特点,并且拥有一个十分活跃的开发者社区。与Ruby、Python等语言相比,Node.js更年轻,更易于没有经验的人上手使用。因此,Node.js很快在世界各地的开发者中收获了一大批拥趸。本书以实战为主旨,通过Node.js 10开发中常用的原生模块和典型的项目案例,让读者全面、深入、透彻地理解Node.js开发的各种热门技术、各种主流框架及其整合使用,提高实际开发水平和项目实战能力。
|
內容簡介: |
本书以实战开发为原则,以Node.js 10原生知识和框架为主线,详细介绍Node.js开发的基础知识和相应案例实践,包括Node.js的原生模块http、net、fs、dns、path、assert等,以及主流的Express框架、Meteor框架、Koa框架的项目实际使用,同时也包含Node.js的单元测试、Node.js部署、*的N-API开发等方面的应用,还为读者提供了详尽的源代码以及代码注释。 本书共14章,分为4篇,涵盖的主要内容有Node.js环境搭建、Node.js的编码规范、Node.js包管理机制、Node.js网络开发、Node.js文件模块使用、Node.js数据库开发、Node.js的单元测试、前端框架React的使用、Express的使用、Koa框架的使用、Meteor框架的使用、Nginx的使用、PM2的使用、Node.js包的开发与发布、个人博客的搭建、任务清单项目等。 本书内容丰富、实例典型、实用性强,适合希望学习Node.js基础以及了解Node.js实际使用的人员阅读,尤其适合希望通过编码实例学习Node.js开发的人员阅读。
|
關於作者: |
忽如寄,硕士,项目经理,精通Web开发(html css js nodejs)和移动native开发(HTML5),也熟悉云计算技术和大数据分析技术,并擅长系统维护和网络安全等技术,有多年的实践经验。曾参与多个大型项目的开发,并负责项目的整体规划和技术指导工作。作者于2013年开始接触Nodejs开发,并致力于Nodejs开发技术的应用和推广。
|
目錄:
|
目 录
第一篇 Node.js概述和开发环境的搭建
第1章 Node.js介绍 3
1.1 Node.js简介 3
1.2 Node.js的发展历史和特点 4
1.2.1 Node.js发展历史 4
1.2.2 Node.js未来版本规划 5
1.2.3 Node.js的结构 6
1.2.4 Node.js v10的特点及新变化 7
1.2.5 Node.js的应用场景 9
1.3 Node.js在中国的发展 10
1.3.1 Node.js中文资源汇总 11
1.3.2 Node.js的发展和未来 11
1.4 温故知新 12
第2章 部署Node.js开发环境 13
2.1 在Windows 10下部署Node.js开发环境 13
2.1.1 使用安装包安装Node.js 14
2.1.2 测试Node.js开发环境 16
2.2 在Linux下部署Node.js开发环境 18
2.2.1 通过源码安装Node.js 18
2.2.2 通过包管理器安装 Node.js 19
2.3 在Mac OS X下部署Node.js开发环境 20
2.3.1 使用.dmg安装包进行安装 20
2.3.2 使用NPM包管理器安装 20
2.4 在树莓派3下使用NVM安装Node.js 21
2.5 使用NPM进行Node包的安装 21
2.6 开发工具介绍 22
2.6.1 下载安装Sublime Text 3 23
2.6.2 Sublime Text操作界面 24
2.6.3 安装Sublime Text 3插件 25
2.6.4 安装Node.js插件 25
2.6.5 Sublime Text 3快捷键 26
2.7 温故知新 28
第二篇 Node.js编程基础
第3章 Node.js开发基础 31
3.1 JavaScript语法 31
3.1.1 变量 31
3.1.2 注释 34
3.1.3 数据类型 34
3.1.4 函数 35
3.1.5 闭包 37
3.2 命名规范与编程规范 39
3.2.1 命名规范 39
3.2.2 编程规范 40
3.3 Node.js的控制台 42
3.3.1 console对象下的各种方法 42
3.3.2 console.log方法 42
3.3.3 console.info、console.warn和console.error方法 43
3.3.4 console.dir方法 44
3.3.5 console.time和console.timeEnd方法 44
3.3.6 console.trace方法 45
3.3.7 console.table方法 45
3.4 温故知新 46
第4章 Node.js中的包管理 47
4.1 支持最新版NPM 47
4.1.1 NPM常用命令 47
4.1.2 package.json文件 50
4.2 模块加载原理与加载方式 52
4.2.1 require导入模块 52
4.2.2 exports导出模块 53
4.3 Node.js核心模块 54
4.3.1 http模块创建HTTP服务器和客户端 54
4.3.2 http2模块创建HTTP2服务器和客户端 58
4.3.3 url模块url地址解析 61
4.3.4 url模块WHATWG URL地址解析 63
4.3.5 querystring模块查询字符串处理 64
4.4 Node.js常用模块 64
4.4.1 util模块实用工具及功能 64
4.4.2 path模块路径处理 67
4.4.3 dns模块 68
4.5 实战爬取网页图片 69
4.5.1 项目目录与思路 70
4.5.2 下载第三方模块 70
4.5.3 配置网页地址及图片存放的文件夹 70
4.5.4 解析DOM得到图片地址 71
4.5.5 请求图片地址 71
4.5.6 图片文件的保存 72
4.5.7 启动项目 73
4.6 温故知新 73
第5章 文件系统 74
5.1 Node.js文件系统介绍 74
5.1.1 同步和异步 74
5.1.2 fs模块中的类和文件的基本信息 76
5.1.3 文件路径 77
5.2 基本文件操作 78
5.2.1 打开文件 78
5.2.2 关闭文件 79
5.2.3 读取文件 80
5.2.4 写入文件 81
5.3 利用async_hooks跟踪异步请求和处理 83
5.4 其他文件操作 85
5.5 实战用IP地址来查询天气情况 87
5.5.1 项目思路 87
5.5.2 引入基础模块 88
5.5.3 解析IP地址信息 88
5.5.4 通过公共服务获取城市和天气信息 89
5.5.5 遍历IP地址 90
5.5.6 将结果写入weather.json 90
5.6 温故知新 91
第6章 Node.js网络开发 92
6.1 构建TCP服务器 92
6.1.1 使用Node.js创建TCP服务器 92
6.1.2 监听客户端的连接 93
6.1.3 查看服务器监听的地址 95
6.1.4 连接服务器的客户端数量 96
6.1.5 获取客户端发送的数据 97
6.1.6 发送数据给客户端 98
6.2 构建TCP客户端 100
6.2.1 使用Node.js创建TCP客户端 100
6.2.2 连接TCP服务器 101
6.2.3 获取从TCP服务器发送的数据 101
6.2.4 向TCP服务器发送数据 102
6.3 构建HTTP服务器 103
6.3.1 创建HTTP服务器 103
6.3.2 HTTP服务器的路由控制 105
6.4 利用UDP协议传输数据与发送消息 107
6.4.1 创建UDP服务器 107
6.4.2 创建UDP客户端 110
6.5 温故知新 113
第7章 Node.js数据库开发 114
7.1 使用mongoose连接MongoDB 114
7.1.1 MongoDB介绍 114
7.1.2 使用mongoose连接MongoDB 116
7.1.3 使用mongoose操作MongoDB 117
7.2 直接连接MongoDB 124
7.2.1 使用node-mongodb-native连接MongoDB 124
7.2.2 使用node-mongodb-native操作MongoDB 124
7.3 连接MySQL 131
7.3.1 MySQL介绍 131
7.3.2 Node.js连接MySQL 134
7.3.3 Node.js操作MySQL 135
7.4 实战学生成绩录入系统 138
7.4.1 生成基本的项目结构 138
7.4.2 数据库设计 139
7.4.3 成绩录入路由开发 139
7.4.4 读取学生成绩路由开发 141
7.5 温故知新 142
第三篇 Node.js实践
第8章 前端框架 145
8.1 前端框架介绍jQuery 145
8.1.1 jQuery介绍 145
8.1.2 使用jQuery选择器 146
8.1.3 使用jQuery进行DOM操作 148
8.2 前端框架介绍React 151
8.2.1 React介绍 151
8.2.2 React的JSX语言 154
8.2.3 React的props和state 156
8.2.4 React的组件生命周期 159
8.3 实战图书信息统计 162
8.3.1 生成基本的目录结构 162
8.3.2 基本的结构开发 163
8.3.3 信息图表的开发 165
8.4 温故知新 171
第9章 Node.js的框架介绍 172
9.1 Node.js框架整体介绍 172
9.1.1 MVC框架 172
9.1.2 全栈框架 173
9.1.3 REST API框架 174
9.1.4 其他框架 174
9.2 Express框架介绍 175
9.3 Meteor框架介绍 177
9.4 其他框架 177
9.4.1 Sails.js 177
9.4.2 Derby.js 178
9.4.3 Flatiron.js 178
9.4.4 Hapi 178
9.4.5 Mean.IO 179
9.4.6 Mojito 179
9.4.7 Socket Stream 179
9.4.8 Bearcat 180
9.5 如何选择适合自己的框架 180
9.5.1 选择框架时的考虑事项 180
9.5.2 选择框架的建议 181
9.6 温故知新 183
第10章 Node.js单元测试与新增特性 184
10.1 单元测试介绍 184
10.2 使用单元测试模块Mocha 184
10.2.1 Mocha介绍 185
10.2.2 使用断言库should.js 190
10.2.3 测试异步方法 193
10.2.4 路由测试 194
10.2.5 测试覆盖率 195
10.2.6 使用Travis-cli 197
10.3 Node.js v10中实现异步请求的单元测试 197
10.4 温故知新 201
第11章 其他应用部署相关 202
11.1 使用Nginx 202
11.1.1 在Linux下安装Nginx 203
11.1.2 在Windows下安装Nginx 203
11.1.3 Nginx的配置 204
11.1.4 使用Nginx部署网站 210
11.2 Yarn新的包管理工具 212
11.3 使用PM2 214
11.4 使用Koa 216
第四篇 Node.js项目案例
第12章 使用Express开发个人博客系统 221
12.1 项目准备 221
12.1.1 项目概述 221
12.1.2 前端界面设计 221
12.1.3 数据库设计 223
12.2 项目开发 225
12.2.1 快速生成一个项目 225
12.2.2 实现登录页面 227
12.2.3 实现博客首页 234
12.2.4 博客文章内容页的实现 242
12.2.5 博客文章发布的实现 246
12.2.6 博客友情链接的实现 252
12.2.7 关于博客页面的实现 254
12.2.8 博客404页面的实现 255
12.2.9 博客侧边栏的优化 256
12.2.10 博客修改文章的实现 258
12.2.11 博客删除文章的实现 263
12.2.12 博客文章分页的实现 265
12.3 项目总结 268
第13章 使用Meteor MongoDB 开发任务清单 269
13.1 项目准备 269
13.1.1 Meteor和MongoDB的安装 269
13.1.2 项目设计 271
13.2 项目开发 272
13.2.1 项目展示功能开发 272
13.2.2 项目页面美化 274
13.2.3 项目数据库开发 276
13.2.4 项目操作逻辑开发 278
13.3 发布与订阅 282
13.4 项目总结 286
第14章 开发和发布一个Node.js包 287
14.1 Node.js包的设计 287
14.2 发布到NPM上 294
14.3 图标和徽章 296
14.4 Node.js v10中的N-API应用 298
14.4.1 N-API介绍 298
14.4.2 N-API环境准备 299
14.4.3 编写扩展 299
14.4.4 编译扩展 300
14.4.5 调用扩展 300
14.5 总结 300
|
內容試閱:
|
前 言
Node.js自2009年发布伊始便迅速掀起了一阵开发热潮。随着最新的Node.js 第10版在功能上的日臻完善,其在Web开发领域已经牢牢占据了属于自己的一方天地。一方面,Node.js使用JavaScript的语法使得服务器和客户端使用同一种语言进行开发成为可能;另一方面,Node.js通过事件循环和非阻塞IO模型实现的异步处理使得Node.js处理大量IO操作具有独特的优势。Node.js技术目前非常年轻并且正处于高速发展时期,无数的开发者正准备或者已经进入这个领域,只有具有扎实的语言基础和丰富的实战开发经验才能在这个快速发展的领域立足。
目前图书市场上关于Node.js零基础入门的图书并不多,从语言基础开始介绍并结合案例实践的书籍就更加少了。本书便是以实战为主旨,通过Node.js开发中常用的原生模块和典型的项目案例,让读者全面、深入、透彻地理解Node.js开发的各种热门技术、各种主流框架及其整合使用,提高实际开发水平和项目实战能力。
本书修订版说明
Node.js 10已正式发布,这是自Node.js Foundation开展以来的第7个主要版本,本书没有包含Node.js 10版本的全部新特性,但是还是结合实践将主要特性融入全书中,包括:
(1)第1章介绍Node.js 10版本的一些主要变动和特色。
(2)第2章更新各种操作系统下Node.js 10环境的搭建。
(3)第4章修订新版NPM的使用、增加HTTP2模块和全新WHATWG URL解析器的介绍。
(4)第5章介绍async_hooks的变化,这是一个很关键的功能。
(5)第10章增加实现异步请求的单元测试新特色。
(6)第14章增加N-API跨版本兼容的一些实践。
本书特色
1. 内容全面、系统,结构合理
为了便于读者了解Node.js的开发,本书详细、系统地介绍入门阶段的原生模块技术,同时涵盖Node.js框架的实战案例。
2. 叙述完整,图文并茂
为了更好地帮助读者进行编程学习,书中附有大量的案例运行效果图,方便读者查看效果。
3. 结合实际,案例丰富
本书提供了大量的实际开发案例,便于读者在了解Node.js知识的同时进行案例实践,同时书中所有的案例都给出了完整的代码和详细的注释。
4. 涵盖基础和前沿知识
本书既介绍简单的网络开发、数据库开发等入门知识,又穿插Express、Koa、Meteor等框架的前沿知识,让读者在了解基础的同时紧跟前沿技术的步伐。
5. 提供大量的源代码,全部基于最新的Node.js 10实现
本书提供大量的源代码,全部代码均基于Node.js 10框架实现。另外,所涉及的全部源代码都将开放给读者,以便于学习。
本书内容
第1篇 Node.js概述和开发环境的搭建(第1~2章)
本篇介绍开发Node.js的主要特点、发展历史和开发环境的搭建,主要包括Node.js的特性、应用场景、开发环境的搭建、开发工具的选择以及Node.js 10的新特性。
第2篇 Node.js编程基础(第3~7章)
本篇介绍Node.js常用原生模块的开发基础,主要包括Node.js的包管理、模块机制以及Node.js开发中最常用的文件模块、网络开发模块、数据库开发模块等知识。
第3篇 Node.js实践(第8~11章)
本篇主要介绍Node.js在实际开发中的运用,主要包括Node.js的Express、Meteor框架、Node.js的单元测试、Node.js部署中的实际运用。
第4篇 Node.js项目案例(第12~14章)
本篇主要介绍4个项目案例的开发过程,主要包括个人博客系统、任务清单、NPM包和N-API设计,涉及Express和Meteor框架的使用以及需求分析、数据库设计、业务层设计和表示层设计的详细过程,还涉及NPM包的开发与发布、Node.js 10新发布的N-API功能的设计与实现。
代码下载
本书示例源代码可以扫描下面的二维码下载。如果下载有问题,或者对本书有什么疑问和建议,请联系booksaga@163.com,邮件主题为Node.js 10实战。
本书读者
? 所有Web前端开发人员。
? 想要全面学习Node.js开发技术的人员。
? 广大Web开发程序员。
? Node.js程序员。
? 想要进入Node.js领域的前端开发人员。
? 希望提高项目开发水平的人员。
? 专业培训机构的学员。
? 需要一本案头必备查询手册的Web开发人员。
本书第1版由忽如寄主笔,第2版由王金柱修订整理,其他创作人员还有吴贵文、薛淑英、董山海,在此表示感谢。由于时间因素和作者水平有限,读者在阅读中发现本书存在什么疑问或者建议,敬请联系作者。
作 者
2019年1月
|
|