前言

Koa是下一代Node.js Web框架。所谓的“下一代”是相对于Express而言的。Koa立身于最“潮”的异步流程控制特性,主要用于改进Node.js开发中的回调地狱痛点,可以说Koa是异步流程控制不断演进的必然产物。在所有的Node.js Web框架中,Koa无疑是最耀眼的一个。

Koa的生态是非常健全的,基于Koa编写Web应用可以应对多种场景。如果用得极致,甚至可以基于Koa在前端领域开发各种工具。

本书内容

本书以Node.js下一代Web框架Koa为核心,主要讲解Koa的基础知识、中间件原理和应用场景,旨在向读者展示如何基于Koa编写出更简单、更具工程化优势的Web应用。

本书共分8章,每章的内容简介如下。

第1章 下一代Web框架Koa

本章将介绍Koa框架的入门知识、优势、应用场景,Koa脚手架的编写方式,以及Node.js Web框架的演进过程。基于最新的AVA测试框架编写测试用例也是本章非常有特色的一节。

第2章 Koa核心扩展机制:中间件

本章将介绍Koa的核心中间件原理,以及Koa中常用的中间件:路由、视图、静态服务模块等。中间件机制是Koa的核心内容,因此本章内容非常重要。

第3章 HTTP必知必会

本章将介绍请求响应模型,也将对HTTP和HTTPS进行讲解,同时以mini-proxy和hiproxy为核心对前端最常用的代理进行讲解。

第4章 Koa练习

本章将结合第3章的HTTP相关知识进行Koa框架内置方法的练习,比如地址解析、参数获取、body解析、API开发,还将介绍各种测试模块和工具软件的用法。

第5章 数据库基础

本章将介绍Node.js数据库选型和MVC模型层的用法,以及使用Mongoose模块操作MongoDB的方法,其中涉及Mongoose中的一些进阶技巧:模型扩展、虚拟属性、回调钩子和插件机制。

第6章 数据库进阶

本章将在第5章的基础上介绍数据库中的进阶技巧:分页、关联查询、事务、性能调优等。通过本章大家能够对Node.js数据库选型掌握得更好。

第7章 前端视图模板

本章将从public目录讲起,介绍前端相关知识,主要涉及模板编译原理、Webpack进阶知识。本章还将介绍前后端分离和服务器端渲染的演进,并提出对未来Serverless环境下前端渲染层的见解。

第8章 项目实战

本章将以CNode项目为核心,介绍基于Egg.js框架的项目代码,还会介绍基于Docker快速开发Node.js Web应用的方法。

本书中的各章内容基本是相互独立的,因此各位读者可以挑选自己感兴趣的章节阅读。这本书是《狼书》系列图书的第2卷,第1卷主要介绍Node.js基础知识,第3卷主要介绍Node.js高级应用。3卷搭配阅读,效果更好。

目标读者

本书的目标读者有以下3类。

○ 正在学习JavaScript开发,对JavaScript语言有基本的了解和熟悉度,且希望能够了解JavaScript发展情况的人。

○ 正从事JavaScript开发相关工作,熟悉JavaScript的基本开发要领,在日常工作中经常接触Node.js,想要深入了解Web应用、BFF、API代理等内容,以进一步提升自我的Web工程师(此处不区分前端与后端)。

○ 具有极客精神,想要深入研究JavaScript语言及Node.js的全栈工程师。

同时,本书也适合正使用其他编程语言(如Go、PHP、Python、Ruby、Java等)进行Web开发的工程师阅读、学习。

阅读准备

要想运行本书中的示例,需要安装以下系统及软件。

○ 操作系统:推荐Linux,以及macOS 10.9或以上版本,使用Windows操作系统可能会在运行示例时报错。

○ 浏览器:Google Chrome、Safari、Firefox、Internet Explorer 11、Windows Edge。

○ 运行环境:以Node.js 8.6版本为主。

联系作者

由衷地感谢你购买此书,希望你会喜欢它,也希望它能够为你带来你希望获得的知识。虽然我已经非常细心地检查了书中的所有内容,但仍有可能存在疏漏。若你在阅读过程中发现错误,在此我先表示歉意。同时欢迎你对本书的内容和相关源码发表意见和评论。你可以通过我的私人邮箱i5ting@126.com与我取得联系,我会一一解答你的疑惑。

我的更多联系方式如下,大家可通过任意方式与我联系。

○ 个人主页:http://i5ting.com

○ GitHub:https://github.com/i5ting

○ Twitter:https://twitter.com/i5ting

最后送给各位读者一句话,也是狼叔常说的——少抱怨,多思考,未来更美好!

读者服务

微信扫码回复:35906

● 获取博文视点学院20元优惠券

● 获取免费增值资源

● 加入读者交流群,与更多读者互动

● 获取精选书单推荐