狼书(卷2Node.jsWeb应用开发)
①全新正版,现货速发,7天无理由退换货②天津、成都、无锡、广东等多仓就近发货,订单最迟48小时内发出③无法指定快递④可开电子发票,不清楚的请咨询客服。
¥
50.39
5.1折
¥
99
全新
库存2件
作者狼叔
出版社电子工业出版社
ISBN9787121359064
出版时间2020-01
装帧平装
开本16开
定价99元
货号30800744
上书时间2024-10-13
商品详情
- 品相描述:全新
- 商品描述
-
作者简介
狼叔(网名i5ting),Node.js 技术布道者,“Node全栈”微信公众号作者,全栈技术实践者。曾就职于多家知名IT企业,从事前端开发、后端开发、数据分析等工作,目前负责公司内的Node.js开发和基础框架开发工作。
目录
目录
第1章 下一代Web框架Koa1
1.1 Koa简介1
1.1.1 应用场景2
1.1.2 开发要点3
1.1.3 Koa入门4
1.1.4 为什么选择Koa7
1.2 Koa脚手架8
1.2.1 安装Koa生成器9
1.2.2 创建Hello world10
1.2.3 目录解析11
1.2.4 Koa v2中间件的写法20
1.2.5 路由21
1.2.6 切换视图模板引擎25
1.2.7 Koa代码调试26
1.3 Node.js Web框架演进29
1.3.1 Node.js http模块29
1.3.2 最早的Connect29
1.3.3 曾经扛鼎的Express框架33
1.3.4 新兴Web开发框架Koa35
1.3.5 Express和Koa大比拼38
1.4 测试38
1.4.1 Node.js测试框架39
1.4.2 AVA测试框架39
1.4.3 测试用例与断言40
1.4.4 实践41
1.4.5 更多内容44
1.5 本章小结48
第2章 Koa的核心扩展机制:中间件49
2.1 中间件49
2.1.1 什么是中间件49
2.1.2 上下文对象57
2.1.3 回形针一样的中间件66
2.1.4 常用中间件88
2.2 路由89
2.2.1 koa-router89
2.2.2 路由详解93
2.2.3 将路由放到目录里98
2.3 视图101
2.3.1 koa-views101
2.3.2 默认模板引擎Pug102
2.3.3 views目录模板说明102
2.3.4 consolidate.js104
2.4 静态服务模块104
2.4.1 koa-static105
2.4.2 koa-send106
2.4.3 koa-mount108
2.4.4 koa-serve-static108
2.5 本章小结109
第3章 HTTP必知必会110
3.1 请求响应模型110
3.1.1 请求112
3.1.2 响应112
3.1.3 核心要点114
3.2 HTTPS127
3.2.1 生成证书129
3.2.2 验证与自动续约130
3.2.3 Node.js服务器HTTPS配置131
3.2.4 Nginx HTTPS配置132
3.2.5 Nginx HTTPS反向代理配置134
3.3 代理136
3.3.1 协议支持136
3.3.2 mini-proxy140
3.3.3 hiproxy146
3.4 本章小结152
第4章 Koa练习153
4.1 基础知识153
4.1.1 地址153
4.1.2 HTTP头部156
4.1.3 HTTP动词161
4.1.4 HTTP状态码163
4.1.5 Cookie164
4.2 获取不同参数的3种方法165
4.2.1 获取具名参数166
4.2.2 解析请求体166
4.2.3 获取查询字符串167
4.3 body解析168
4.3.1 模块依赖168
4.3.2 原理168
4.3.3 常见的POST169
4.4 请求的几种方式175
4.4.1 表单176
4.4.2 AJAX176
4.4.3 命令行177
4.4.4 HTTP模块178
4.4.5 工具软件183
4.4.6 测试183
4.5 API开发185
4.5.1 API的简单写法185
4.5.2 响应处理189
4.5.3 RESTful API190
4.5.4 API访问鉴权192
4.5.5 OAuth鉴权194
4.6 常用中间件195
4.6.1 会话196
4.6.2 ETag198
4.6.3 验证码199
4.6.4 限制访问频率201
4.7 本章小结203
第5章 数据库基础204
5.1 入门204
5.1.1 选择哪个数据库204
5.1.2 了解MVC里的模型206
5.1.3 模型的代码207
5.1.4 代码组织结构209
5.2 MongoDB的安装与部署210
5.2.1 安装与部署的方式211
5.2.2 在macOS上安装212
5.2.3 在Ubuntu上安装212
5.2.4 在Windows上安装213
5.2.5 更好的启动方式213
5.3 Mongoose基础214
5.3.1 简介214
5.3.2 入门215
5.3.3 Hello Mongoose218
5.3.4 核心概念221
5.3.5 增删改查操作223
5.3.6 Schema的类型232
5.4 Mongoose进阶234
5.4.1 模型扩展234
5.4.2 虚拟属性237
5.4.3 回调钩子240
5.4.4 插件机制244
5.5 本章小结253
第6章 数据库进阶254
6.1 分页254
6.1.1 使用skip和limit实现分页255
6.1.2 使用find和limit实现分页256
6.1.3 ObjectID的组成257
6.1.4 客户端生成ObjectID259
6.2 关联查询259
6.2.1 聚合函数260
6.2.2 聚合管道261
6.2.3 MapReduce263
6.2.4 关联关系264
6.2.5 aggregation266
6.3 事务270
6.3.1 二阶段提交法270
6.3.2 回滚操作273
6.4 性能调优274
6.4.1 profile275
6.4.2 explain275
6.4.3 索引优化276
6.4.4 MongoDB的连接问题282
6.4.5 MongooseDao289
6.4.6 异步流程控制296
6.5 本章小结303
第7章 前端视图模板304
7.1 静态服务器304
7.1.1 public目录304
7.1.2 实现原理306
7.1.3 静态服务307
7.1.4 预处理中间件314
7.2 使用模板引擎进行动态渲染316
7.2.1 模板引擎原理316
7.2.2 模板引擎规则324
7.2.3 Vue333
7.3 Webpack342
7.3.1 解决痛点343
7.3.2 模块规范344
7.3.3 模块加载器345
7.3.4 模块打包器345
7.3.5 Webpack详解346
7.4 前后端分离357
7.5 前端渲染357
7.5.1 客户端渲染357
7.5.2 服务器端渲染358
7.5.3 React服务器端渲染360
7.5.4 Serverless时代的渲染层363
7.6 本章小结365
第8章 项目实战366
8.1 入门366
8.1.1 Docker366
8.1.2 Docker Compose369
8.1.3 环境变量370
8.1.4 启动服务器373
8.2 Egg.js框架373
8.2.1 使用脚手架374
8.2.2 目录说明375
8.2.3 启动服务器379
8.2.4 代码结构381
8.2.5 内置对象384
8.2.6 代码调试386
8.2.7 插件扩展机制387
8.3 egg-cnode源码388
8.3.1 目录约定388
8.3.2 app目录390
8.3.3 数据库连接391
8.3.4 模型定义392
8.3.5 从Controller到Service393
8.3.6 视图渲染396
8.3.7 数据模型399
8.3.8 API开发400
8.3.9 测试403
8.3.10 鉴权404
8.3.11 后台管理412
8.3.12 参数校验412
8.4 本章小结413
内容摘要
Node.js开发简单,性能极好,一经发布便成了明星级项目。随着大前端领域的蓬勃发展,跨平台开发、API构建、Web应用开发等场景愈加常见,Node.js也成为大前端开发的必备“神器”。本书主要讲解Node.jsWeb应用开发涉及的HTTP基础知识、常用开发框架、源码原理、数据库和项目实战,旨在向读者展示如何通过Node.js和Koa编写出更具前端特色的Web应用。本书还讲解了Koa中的核心中间件原理,展望了未来Web应用开发的发展方向。基于Node.js开发Web应用具有上手简单、开发快速、执行高效等特点,非常适合快速迭代,因此各位大前端领域及后端领域的测试、运维、软件开发从业者都可以阅读本书。
精彩内容
推荐序1提起国内的Node.js布道师,我脑海中出现的第一个名字就是狼叔(i5ting)。
狼叔从2015年开始活跃于CNode社区,至今累计发表文章200余篇,主题丰富多样——Node.js底层原理、npm目录结构改进、前后端分离实践、全栈工程师之路等。这几年间,狼叔同时运营着自己的微信公众号“Node全栈”,每日笔耕不辍,源源不断地将最新鲜、最“硬核”的资讯分享给国内的开发者们。不得不说,他的这种乐于分享的精神,实属难得。
我与狼叔也是在2015年相识的。2015年是Node.js的普及度呈爆发式增长的一年,但那一年的Node.js还远远谈不上被广泛使用。当时我在阿里巴巴数据平台任职,那时我们所做的部分项目的JavaScript压缩工具和测试覆盖率工具还是用Java实现的,这在现在看来可以说是非常匪夷所思的,JavaScript工作流中的工具竟然还有用Java而不是用Node.js实现的!
时过境迁,转眼多年过去,JavaScript在大前端领域遍地开花,Node.js也已经被广泛应用于Web开发的方方面面,成了Web开发流程中不可或缺的部分。大家不再怀疑Node.js能不能用,而是要开始思考该如何用Node.js实现我们想要的功能。
技术的好与坏,不仅仅在于技术本身具有什么优势。布道如果做得不好,酒香也怕巷子深。技术的进步与受众群体的反馈是相互促进的。Node.js在国内逐渐生根发芽的这几年,狼叔无疑是推广该技术的中坚力量。
经过多年的积累和沉淀,狼叔带着他的新书与大家见面了。这本书内容循序渐进、概念清晰明了、技术描述有点有面,是一本理论架构完整且实战案例典型的好书!相信各位读者一定能够从中获益!
最后,衷心祝愿Node.js发展得越来越好,也祝愿狼叔的布道事业蒸蒸日上!
CNode社区管理员,alsotang推荐序2在狼叔邀请我为他的新书写推荐的时候,我的内心是忐忑的,因为我对Node.js并不熟悉,不是这方面的专家。但对于狼叔我是了解的,同为技术社区推动者和文字爱好者,我深知在国内要写一本严肃的技术图书是一件多么吃力不讨好的事情。正因如此,狼叔的这本书就更值得推荐给准备学习和正在学习Node.js的工程师们。
十年前,Node.js刚刚诞生,那时我就接触到了它。后来,Node.js的迭代和进步之快完全超出了我的预期,它变得越来越好用,逐渐成为全栈工程师的首选。这样的结果离不开强大、活跃的Node.js社区和无私的Node.js贡献者们的付出,而狼叔就是国内Node.js贡献者的代表。
有了Node.js,前端工程师也可以编写后端程序,并成为手机应用的跨平台开发主力。客户端、前端和服务器端已呈现出大统一趋势。在我自己熟悉的Web服务器开发领域,可以说Nginx内置的njs就是冲着替代OpenResty这一目标迅速发展的。
在这种技术趋势下,学习JavaScript和Node.js无疑是一个性价比很高的选择。这样一来,我们便可以打通从移动应用、Web应用到服务器端接口的整条链路。而学习一门技术最好的方式,就是选择一本好书。
写一本好书对作者的要求很高——技术功底扎实只是基础,更要有丰富的项目经验、深厚的文字功底和洞察读者心理的能力。平日里像“诗人”一样的狼叔绝对是为数不多的具备上述能力的“牛人”,所以我相信他写的书也一定是一本好书。希望大家能通过这本好书提升自己的技术水平。
学习从来不是一件容易的事,但却是一件快乐的事,共勉。
温铭OpenResty软件基金会主席、OpenRestyInc.合伙人推荐序31995年,BrendanEich花了10天时间开发出了一门脚本语言,该语言可用于弥补JavaApplets的不足,随后MarcAndreessen将这门语言命名为Mocha。Mocha的最初定位是,服务于测试脚本编写人员、业余编程爱好者、设计师。
1995年5月,Mocha被集成到了Netscape浏览器中,不久后其被更名为LiveScript。同年年底,Netscape公司和Sun公司达成协议并获得了Java商标的使用权,于是LiveScript正式被更名为JavaScript。
有人觉得,正是因为更名为JavaScript才使这门语言成了浏览器执行的唯一语言。但时至今日,JavaScript已经不仅仅局限于实现网页特效了,而真正发展成了一门全功能的编程语言。
2009年,Joyent公司的一名软件工程师RyanDahl开发了Node.js,这是一个基于ChromeV8引擎的JavaScript运行时环境。Node.js使得JavaScript拥有了操作文件系统、I/O、网络,甚至数据库的能力。虽然Node.js不是第一个将JavaScript带离浏览器的工具,但它无疑是最成功的一个。
如今Node.js社区已经成了最活跃的编程社区之一,其npm的包数量也已经超越了Java的Maven、Ruby的Gem、PHP的Composer。
狼叔是国内最早一批的Node.js使用者,也是Node.js社区最活跃的布道者之一。几年前狼叔来天津创业,我有缘与他结识。在那之前我就已经拜读过狼叔的文章,而当时狼叔就曾与我谈起要写一本关于Node.js的书。说来也巧,Node.js于2009年发布,而《金刚狼》系列电影也于2009年开始上映。《金刚狼》系列电影一共3部,而狼叔的《狼书》系列图书也有3卷,希望《狼书》系列图书能如《金刚狼》系列电影一样受到欢迎。
目前Node.js发展十分迅速,但很大一部分使用者是前端开发人员。和Java、Python、Ruby等后端语言对比,尤其在图书出版方面,Node.js还需要持续深入,而《狼书》的面世正好弥补了这一方面的不足——第1卷系统全面地介绍Node.js基础,第2卷着重介绍Node.jsWeb应用开发技能,第3卷则侧重于Node.js的高级应用。如果你想深入学习Node.js的核心原理并掌握使用Node.js开发大型系统的要诀,那么这套书绝对值得你精读。
迷渡(justjavac)Flarum中文社区创始人推荐序4俗话说,十年磨一剑,慢工出细活。狼叔撰写的《狼书》系列图书很好地诠释了这两句话。
众所周知,狼叔是Node.js布道者、“Node全栈”微信公众号的作者,他活跃于CNode社区,组织了不少线下Node.js沙龙,同时常作为讲师在各种技术交流会上进行分享,为Node.js在国内的推广做出了很大的贡献。我觉得这是一种情怀,也是一种责任。当你爱上一件事,你就会全情投入。
Node.js的出现在很大程度上满足了前端工程师想要探索更广阔的编程世界的愿望,为前端工程师提供了更好的了解后端工作的机会,对于前后端协同而言具有巨大价值。十年时间,Node.js几经波折,但这并不妨碍它快速发展,如今它已经成为最流行的技术之一。
近些年,不少大型互联网公司都开始基于Node.js构建应用。我和狼叔在去哪儿网相识,平时和他对话或闲聊,最后总能聊到Node.js上,我能深切地感受到他对Node.js的热爱。那时候的狼叔正在努力为去哪儿网建设更完善的Node.js基础设施,他的努力为去哪儿网注入了新鲜活力,加快了Node.js在机票购买业务中的落地。
《狼书》系列图书正是狼叔Node.js情怀的最终寄托。这本第2卷由浅及深、由粗至细、几经雕琢,很好地承载了狼叔对Node.js的热爱,将Node.jsWeb开发框架Koa、中间件机制、HTTP核心知识、数据库操作、视图模板等热门话题娓娓道来,就像一杯陈酒,越品越有味道。我相信每一位拿到此书的读者都会有不同的收获,无论你是初入前端领域的“小白”,还是深耕多年的“老手”。
杜瑶美团研究员去哪儿网前高级技术总监推荐序5自2009年Node.js诞生以来,它一直在快速发展,不断扩大自身的能力范围。
基于ChromeV8执行引擎的Node.js在保证其性能和稳定性的同时,也收获了许多由强大的技术社区提供的优秀npm包,因此基于单线程和异步流程控制的Node.js开发在效率上得到了保障与提升。
得益于这些优势,Node.js可以广泛应用于诸多场景——从数据库到API,从Web应用框架到SSR服务,从命令行到前端工程化,甚至在操作系统开发和桌面应用设计中它都能占有一席之地。这些足以说明Node.js的“了不起”与空前繁荣。
近几年来,Node.js在国内发展迅猛,无论是大型企业的中台服务,还是中小型企业的全栈式研发模式,几乎都将Node.js作为首选技术。事实证明,它并没有让大家失望。
如今Node.js的稳定版本为v10.x,新特性和新功能还不断加入,版本也在快速迭代。我们可以看到,有非常多的Node.js开发工程师专门从事这项技术的研究,也有很多企业在招聘时将Node.js作为应聘者的必会技能进行考查。这些都足以证明,Node.js正在被进一步发扬光大。
本书的作者狼叔,一直活跃在CNode技术社区。作为一名Node.js布道者,他一直深耕在Node.js领域,不断在各个平台与大家分享他的技术见解。这本书是狼叔多年技术心血的结晶,它很好地向读者介绍了与Node.jsWeb应用开发相关的核心知识。无论你是想入门Node.js还是想进行Node.js企业级深度实践,都可以参考这本书。只要你热衷于Node.js,这本书便值得你阅读!
河伯腾讯技术总监腾讯IVWEB团队负责人
— 没有更多了 —
以下为对购买帮助不大的评价