当前位置: 首页 > 后端技术 > Node.js

iKcamp新书发布《Koa与Node.js开发实战》

时间:2023-04-03 11:47:23 Node.js

内容概要Node.js10已进入LTS时代!其应用场景已经从脚手架、辅助前端开发(如SSR、PWA等)扩展到API中间层、代理层和专业后端开发。Node.js在企业web开发领域也越来越成熟,无论是在API中间层还是在微服务中,都得到了很好的实现。本书将带领你通过Web开发框架Koa2进入Node.js的主战场!本书系统地讲解了在实际项目中使用Koa框架开发Web应用程序的过程和步骤。第一章介绍Node.js的安装、开发工具和调试。第2章和第3章介绍了搭建Koa实战项目的原型。第4章详细介绍了HTTP的基础知识及其实际应用。第5章介绍了MVC、模板引擎、文件上传等实用功能。第6~8章介绍了数据库、单元测试和项目的优化和部署。第9章到第13章介绍了从零开始构建流行的微信小程序前后台管理应用的全过程,以及最终的服务器部署,包括HTTPS和Nginx。本书实例丰富,注重实战。以完整的实战项目贯穿所有章节,并提供本书涉及的所有源代码和部分章节的配套视频教程。有助于前端开发者在新领域立足,后端开发者了解Node.js并使用Koa2开发Web应用的得力助手。前言Node.js诞生于2009年,距本书出版已近10年。它扩展了JavaScript的应用范围,使JavaScript能够像其他语言一样操作各种系统资源。因此,大量的前端工程开发工具开始运行在Node.js环境中。由于Node.js使用事件驱动、非阻塞I/O和异步输出来提高性能,因此大量I/O密集型应用程序也使用Node.js进行开发。掌握Node.js开发,不仅可以大大拓宽前端开发者的技术知识面,也可以拓展前端开发者的生存空间,从当前前端开发者越来越多的环境中脱颖而出。由于Node.js只提供基础类库,开发者需要自主合理设计应用架构,调用大量基础类库进行开发。为了提高开发效率,降低开发门槛,相关技术社区涌现了很多基于Node.js的Web框架。Express框架出现在Node诞生之初。js,并迅速成为主流的Web应用开发框架。在社区中,大量的第三方开发者开发了丰富的Express插件,大大降低了基于Node.js的Web应用的开发成本,也带动了大量的开发者选择使用用于开发Web应用程序的Express框架。但是,Express框架使用传统的回调方法来处理异步调用。对于没有经验的开发者来说,很容易将代码写成“回调地狱”,使得开发出来的应用难以持续维护。Generator函数是在ECMAScript6的规范中提出的,根据规范,Express的作者TJHolowaychukhttps://github.com/tj巧妙地开发了co库https://github.com/tj/co,使开发者能够通过yield关键字,像同步代码一样开发异步应用程序,从而解决“回调地狱”问题。2014年基于co库开发了新一代web应用开发框架Koa。描述这个框架的官方语言是“下一代Node.js网络框架”。社区开发者为Koa开发了大量的插件,与Express相比,两者的处理机制有着根本的不同。Express的插件是顺序执行的,而Koa的中间件是基于“洋葱模型”,请求处理前后的代码都可以在中间件中执行。ECMAScript7提供了Async/Await关键字,从语法层面更好地支持异步调用。TJHolowaychuk在Koa的基础上,采用Async/Await代替co库来处理异步回调,并发布了Koa的第二个版本(简称Koa2)。随着Node8LTS(LongTermSupport,长期支持)的发布,LTS版本正式支持ECMAScript7规范,越来越多的Node.jsWeb应用开始使用Koa开发框架进行开发。Koa框架逐渐取代了Express框架。尽管目前Koa很火,但是“原生”支持ECMAScript7语法的Node.js8于2017年10月正式发布。目前市面上介绍Koa的书籍很少,大多介绍Express框架。这本书可以说是第一本介绍Koa的书。本书从Node.js基础、HTTP、Koa框架、数据库、单元测试、运维部署等方面全面介绍了应用开发所需的知识体系。通过阅读本书,读者可以了解Node.js开发的方方面面,减少实际开发中出现的问题。同时,本书重点章节还提供在线代码讲解和视频。读者在阅读本书的同时,结合在线代码讲解和视频,可以更轻松地理解本书介绍的知识。特别鸣谢杜可可、哈志辉、江帅、李博、李毅、盛汉勤、田晓虎、徐磊、严萌、赵晨雪(排名不分先后)对在线培训音视频课程的开发和支持资源。本书重点章节均配有教学视频。为使读者更容易理解本书内容,部分基础和重点内容配有视频教程。读者可以访问https://ikcamp.com观看结合书中内容的视频。所有源代码都托管在GitHub上。为了降低读者获取源码的难度,本书所有源码都托管在GitHub(https://github.com/ikcamp)上,读者也可以通过以下方式与本书作者直接交流GitHub。一线互联网公司Node.js技术栈实战经验总结。本书补充了前端开发者所没有的后端开发技能和规范,介绍了如何开发Koa应用,如何通过ORM(ObjectRelationalMapping,对象关系映射)类库读写数据库,以及如何通过单元测试保证代码质量,如何通过PM2、CI等方式启动和部署Node.js应用,如何利用日志和监控来保证线上应用的稳定运行。典型项目案例分析,实用性强。本书第三部分通过云相册小程序开发项目介绍了当前流行的小程序技术,包括小程序登录流程、扫码登录、文件上传、相册管理等功能。通过学习本书的相关内容,读者可以独立开发流行的小程序和所需的后端服务。本书知识体系第一部分 基础知识(第1至4章)这部分介绍了开发Koa应用所需的准备知识,包括4章:Node.js入门、认识Koa、路由和HTTP。第一章介绍了Node.js的历史和发展历程,以及Node.js的基础和环境准备。引入了NPM(NodePackageManager,Node.js的第三方包管理工具),开发者可以通过它轻松使用大量的第三方软件包。本章还介绍了微软推出的免费开发工具:VisualStudioCode编辑器,以及如何使用该编辑器调试Node.js应用。第二章介绍了Koa的发展历程以及作为Koa核心技术的中间件。第三章介绍了路由的概念,以及Koa中最流行的路由中间件koa-router。第4章介绍了HTTP的基础知识和HTTP的后续协议HTTP/2;Node.js中如何获取客户端传过来的数据,如何通过koa-bodyparser中间件获取请求中的body数据等等。Part2 应用实战(第5-8章)这部分介绍了应用开发各个环节的知识,包括构建KoaWeb应用、数据库、单元测试、优化和部署4章。第五章介绍了MVC架构、模板引擎、静态资源、如何输出JSON数据、如何通过koa-multer中间件上传文件等。第六章介绍了数据库的概念和以关系型数据库为代表的数据库。MySQL,以及如何通过ORM类库操作MySQL数据库;介绍了以MongoDB为代表的非关系型数据库,以及如何在Node.jsMongoDB中对其进行操作;介绍了以Redis为代表的新型缓存数据库,以及如何在Node.js中使用Redis实现会话持久化。第7章介绍Chai断言库,用于检测单元测试过程中的结果是否符合预期;介绍Mocha测试框架,可用于编写和运行单元测试代码;介绍使用SuperTest工具测试HTTP服务,通过Nock库模拟HTTP服务请求响应;最后引入了Nyc工具来检查单元测试的覆盖率,提高代码质量。第八章介绍了如何统一记录日志和捕获异常,以及如何输出自定义错误页面;介绍了如何通过PM2和Docker启动应用,如何通过CI集成发布应用,如何通过Nginx提供HTTPS支持;介绍了如何使用日志等方式监控服务器的运行状态,以及如何使用PM2提供的Keymetrics监控云服务器。Part3 项目实战:从零开始搭建微信小程序背景(第9~13章)这部分介绍了目前最流行的小程序的开发,并讲解了如何结合具体的小程序开发一个完整的小程序相册小程序。程序,以及如何部署小程序。其中,总结本书前面章节的知识,介绍了小程序的功能模块、界面开发、小程序开发、管理后台开发和服务部署。第9章介绍小程序应具备的产品功能,以及如何开发小程序入口。第10章介绍了小程序的登录流程、扫码登录的逻辑和实现、小程序使用的接口以及后台管理系统需要的接口。具体包括如何通过中间件进行认证,如何统一控制后台管理系统的权限,如何定义数据模型并通过Mongoose访问和存储数据,以及如何使用log4js记录日志。第11章介绍了微信小程序的开发流程,以及如何借助微信开发者工具开发小程序。第12章介绍了开发后台管理系统的总体架构和设计思路,并提供了一套登录和认证的技术方案。第13章介绍了小程序相关服务的上线部署流程,包括数据库、Nginx、HTTPS、Koa服务的部署,包括如何通过Nginx将多个域名解析到同一个云服务器,以及如何管理通过PM2应用程序。本书适合Web前端开发者、对Node.js应用感兴趣的开发者、Node.js开发的自学者、高校相关专业的师生、相关培训机构的学员等读者阅读。.本书由陈大夫、金晶、甘军、张立涛、戴亮、周尧、薛淑英合着。本书涉及大量的技术知识点。虽然作者团队成员努力贡献好的作品,让技术更好的普及,但难免有疏漏和不足之处。如果读者有任何问题或建议,可以直接到iKcamp的GitHub留言。本书的源代码也可以在GitHub上获取,网址为https://github.com/ikcamp。本书部分内容附有视频,可前往https://camp.qianduan.group/k...。本书已上架各大电商网站,感谢您对iKcamp的支持!