MEAN全栈开发(第2版) 使用Mongo、Express、 Angular和Node

MEAN全栈开发(第2版) 使用Mongo、Express、 Angular和Node
分享
扫描下方二维码分享到微信
打开微信,点击右上角”+“,
使用”扫一扫“即可将网页分享到朋友圈。
作者: , , , [美] (Simon Holmes) , [美] (Clive Harber)
2020-06
版次: 1
ISBN: 9787302551850
定价: 128.00
装帧: 其他
开本: 16开
纸张: 胶版纸
9人买过
  • ● MongoDB 4、Express 4、Angular 7和Node.js 11

      ● MEAN技术栈架构

      ● 适用于移动设备的Web应用

      ● 关于效率和可重用性方面的更佳实践 Simon Holmes从2000年开始从事全栈开发工作,同时也是一名解决方案架构师、讲师、团队领导和项目经理。他还经营着一家培训公司,名为Full Stack Training Ltd。Simon 的开发经验非常丰富,通过实际工作中的指导和训练,他非常了解人们的痛点。



     



    Clive Harber从13岁开始编写计算机程序。他从威尔士斯望西大学取得化学工程硕士学位,多年来为体育和博彩业、电信、医疗保健和零售业编写过使用多种编程语言和不同范例的代码。现阶段,他希望能够为编程社区贡献自己的力量。Clive曾担任Manning出版社其他书籍的审校者和技术审校者,包括《Vue.js实战》、Testing Vue.js Applications、《React实战》、Elixir in Action、Mesos in Action、Usability Matters、《Mountebank微服务测试》、Cross-Platform Desktop Applications和Web Components in Action。 第Ⅰ部分  设置基线



    第1章  全栈开发介绍  3



    1.1  为何学习全栈  4



    1.1.1  Web开发简史  4



    1.1.2  全栈开发的趋势  6



    1.1.3  学习全栈开发的益处  7



    1.1.4  为何专门介绍MEAN  7



    1.2  Node.js介绍  8



    1.2.1  JavaScript:MEAN技术栈中唯一的语言  9



    1.2.2  快速、高效和可扩展  9



    1.2.3  通过npm使用预构建的包  12



    1.3  Express介绍  13



    1.3.1  简化服务器配置  13



    1.3.2  路由响应URL  13



    1.3.3  视图:HTML响应  13



    1.3.4  通过会话记录访问者的信息  14



    1.4  MongoDB介绍  14



    1.4.1  关系数据库与文档数据库  14



    1.4.2  MongoDB文档:JavaScript数据存储  15



    1.4.3  不止是文档数据库  16



    1.4.4  MongoDB的不足之处  16



    1.4.5  Mongoose:关于数据建模更多的事  16



    1.5  Angular介绍  17



    1.5.1  jQuery和Angular  18



    1.5.2  双向数据绑定:处理页面中的数据  18



    1.5.3  使用Angular加载新页面  18



    1.5.4  Angular的缺陷  19



    1.5.5  使用TypeScript进行开发  20



    1.6  相关配套支持  20



    1.6.1  使用Twitter Bootstrap创建用户界面  20



    1.6.2  使用Git管理源代码的版本  21



    1.6.3  使用Heroku作为主机  22



    1.7  结合实际示例将它们结合到一起  22



    1.7.1  介绍应用程序示例  22



    1.7.2  MEAN技术栈组件如何协同工作  24



    1.8  本章小结  24



    第2章  设计MEAN技术栈架构  27



    2.1  通用的MEAN技术栈架构  27



    2.2  进一步了解单页面应用  28



    2.2.1  对搜索引擎不友好  29



    2.2.2  Google Analytics和浏览器历史记录  30



    2.2.3  初始化速度  30



    2.2.4  选择单页面应用还是非单页面应用  31



    2.3  设计一种灵活的MEAN架构  32



    2.3.1  博客引擎需求  32



    2.3.2  博客引擎架构  33



    2.3.3  最佳实践:为数据层构建内部API  36



    2.4  规划真实的应用程序  37



    2.4.1  整体规划应用程序  38



    2.4.2  设计应用程序的架构  39



    2.4.3  将所有内容封装到Express项目中  41



    2.4.4  最终产品  42



    2.5  将开发按阶段规划  42



    2.5.1  快速成型的开发阶段  43



    2.5.2  构建Loc8r的步骤  44



    2.6  硬件架构  50



    2.6.1  开发环境需要的硬件  50



    2.6.2  生产环境需要的硬件  50



    2.7  本章小结  52



    第Ⅱ部分  构建Node Web应用程序



    第3章  创建并设置MEAN项目  55



    3.1  Express、Node和npm简介  57



    3.1.1  使用package.json定义包  57



    3.1.2  package.json文件中的依赖版本号  58



    3.1.3  使用npm安装Node依赖  58



    3.2  创建Express项目  60



    3.2.1  安装工具  60



    3.2.2  查看安装状态  61



    3.2.3  创建项目文件夹  61



    3.2.4  配置Express  61



    3.2.5  创建并运行Express项目  63



    3.2.6  重启应用程序  66



    3.3  支持MVC的Express  67



    3.3.1  MVC总览  68



    3.3.2  改变文件夹结构  68



    3.3.3  使用改变位置后的视图和路由  69



    3.3.4  从路由中拆分控制器  71



    3.4  导入Bootstrap以快速实现响应式布局  74



    3.4.1  下载并添加Bootstrap到应用程序中  74



    3.4.2  在应用程序中使用Bootstrap  75



    3.5  使用Heroku  78



    3.5.1  设置Heroku  78



    3.5.2  使用Git将网站发布到线上URL  80



    3.6  本章小结  83



    第4章  使用Node和Express构建静态站点  85



    4.1  定义Express路由  86



    4.2  构建基本控制器  89



    4.2.1  设置控制器  89



    4.2.2  测试控制器和路由  91



    4.3  创建视图  92



    4.3.1  使用Bootstrap  93



    4.3.2  使用Pug模板和Bootstrap设置HTML框架  94



    4.3.3  构建模板  99



    4.4  添加其他视图  103



    4.4.1  地点详情页  104



    4.4.2  添加评论页  108



    4.4.3  添加关于页  109



    4.5  将数据从视图中分离,让视图更智能  111



    4.5.1  将数据从视图移到控制器  113



    4.5.2  处理复杂的重复数据模型  115



    4.5.3  操作数据和视图  119



    4.5.4  使用include和mixin创建可重用的布局组件  120



    4.5.5  查看主页  122



    4.5.6  更新其他视图和控制器  124



    4.6  本章小结  125



    第5章  使用MongoDB和Mongoose构建数据模型  127



    5.1  使用Mongoose将Express应用程序连接到MongoDB  129



    5.1.1  将Mongoose添加到应用程序  130



    5.1.2  将Mongoose连接添加到应用程序  131



    5.2  为什么要为数据建模  137



    5.2.1  Mongoose的定义及工作原理  138



    5.2.2  使用Mongoose进行数据建模  139



    5.2.3  分解模式路径  140



    5.3  定义简单的Mongoose模式  141



    5.3.1  模式的基本设置  141



    5.3.2  在MongoDB和Mongoose中使用地理位置数据  144



    5.3.3  使用子文档创建复杂模式  146



    5.3.4  最终的模式结果  152



    5.3.5  将Mongoose模式编译为模型  154



    5.4  使用MongoDB shell创建MongoDB数据库并添加数据  156



    5.4.1  MongoDB shell基本知识  156



    5.4.2  创建MongoDB数据库  158



    5.5  将数据库发布到线上环境  161



    5.5.1  设置mLab并获取数据库URI  162



    5.5.2  推送数据  164



    5.5.3  让应用程序使用正确的数据库  166



    5.6  本章小结  169



    第6章  编写REST API:向应用程序公开MongoDB数据库  171



    6.1  REST API规则  172



    6.1.1  请求URL  173



    6.1.2  请求方式  174



    6.1.3  响应和状态码  176



    6.2  在Express中设置API  177



    6.2.1  创建路由  178



    6.2.2  创建占位控制器  180



    6.2.3  从Express请求返回JSON数据  181



    6.2.4  导入控制器  181



    6.2.5  测试API  183



    6.3  GET请求方式:从MongoDB读取数据  184



    6.3.1  在MongoDB中使用Mongoose查找单个文档  184



    6.3.2  根据ID查找单个子文档  188



    6.3.3  使用地理位置查询多个文档  191



    6.4  Post请求方式:向MongoDB添加数据  198



    6.4.1  在MongoDB中创建文档  198



    6.4.2  使用Mongoose校验数据  200



    6.4.3  在MongoDB中创建新的子文档  202



    6.5  PUT请求方式:更新MongoDB数据  206



    6.5.1  在MongoDB中使用Mongoose更新文档  206



    6.5.2  使用Mongoose的save方法  206



    6.5.3  更新MongoDB中已存在的子文档  209



    6.6  DELETE请求方式:删除MongoDB数据  211



    6.6.1  删除MongoDB中的文档  211



    6.6.2  删除MongoDB中的子文档  213



    6.7  本章小结  215



    第7 章  消费REST API:使用来自 Express内部的API  217



    7.1  如何调用Express API  218



    7.1.1  添加request模块  218



    7.1.2  设置默认选项  219



    7.1.3  使用request模块  219



    7.2  使用API返回列表数据:Loc8r主页  221



    7.2.1  关注分离:将渲染移入命名函数  221



    7.2.2  构建API请求  222



    7.2.3  使用API响应数据  223



    7.2.4  在展示数据前修改数据:修改距离值  225



    7.2.5  捕获API返回的错误  227



    7.3  从API获取单个文档:Details页面  232



    7.3.1  关注分离:将渲染移入命名函数  234



    7.3.2  使用URL中的ID参数查询API  234



    7.3.3  将数据从API传递到视图  235



    7.3.4  调试并修复视图错误  236



    7.3.5  使用Pug mixin格式化日期数据  238



    7.3.6  创建基于返回状态的错误页  239



    7.4  通过API向数据库添加数据:添加Loc8r用户评论  242



    7.4.1  设置路由和视图  242



    7.4.2  提交评论数据到API  247



    7.5  通过数据验证保护数据完整性  249



    7.5.1  在模式中使用Mongoose验证  249



    7.5.2  使用Node和Express在应用程序层进行验证  253



    7.5.3  使用jQuery在浏览器中进行验证  255



    7.6  本章小结  256



    第Ⅲ部分  使用Angular创建动态页面



    第8章  使用TypeScript开发Angular应用程序  259



    8.1  创建并运行Angular  260



    8.1.1  使用命令行创建Angular模板应用程序  260



    8.1.2  运行 Angular应用程序  262



    8.1.3  应用程序的源代码  262



    8.2  开发 Angular 组件  269



    8.2.1  创建新的home-list组件  269



    8.2.2  创建 HTML模板  271



    8.2.3  从模板向组件迁移数据  274



    8.2.4  在HTML模板中引用类的成员变量  277



    8.3  从API接口中获取数据  284



    8.3.1  创建数据服务  285



    8.3.2  调用数据服务  288



    8.4  在生产环境中部署Angular应用程序  292



    8.4.1  构建生产环境中的Angular应用程序  292



    8.4.2  集成Express站点和Angular应用程序  292



    8.5  本章小结  295



    第9章  使用Angular开发单页面应用:基础  297



    9.1  为Angular SPA添加跳转功能  298



    9.1.1  导入Angular路由模块并定义第一个路由  299



    9.1.2  路由配置  299



    9.1.3  创建framework组件以及导航栏  300



    9.1.4  使用router-outlet定义显示内容  302



    9.1.5  在不同页面之间跳转  303



    9.1.6  为跳转链接增加选中样式  305



    9.2  使用多个嵌套组件构建模块化的应用程序  306



    9.2.1  创建homepage组件  307



    9.2.2  创建并使用可复用组件  309



    9.3  根据地理位置查找附近地点  316



    9.3.1  创建Angular 地理位置服务  316



    9.3.2  在应用程序中添加地理位置服务  318



    9.3.3  在home-list组件中使用地理位置服务  319



    9.4  安全绑定 HTML片段  324



    9.4.1  完善关于页的内容  324



    9.4.2  创建用于转义换行符的管道  325



    9.4.3  属性绑定:安全地绑定HTML片段  327



    9.5  挑战  328



    9.6  本章小结  329



    第10章  使用Angular开发单 页面应用:进阶  331



    10.1  处理更复杂的视图和路由参数  332



    10.1.1  规划页面布局  332



    10.1.2  创建组件  333



    10.1.3  根据URL参数设置和定义路由  335



    10.1.4  在组件和服务中使用URL参数  337



    10.1.5  向详情页组件传递数据  341



    10.1.6  构建详情页视图  343



    10.2  处理表单和提交数据  349



    10.2.1  使用Angular添加评价  350



    10.2.2  向API提交表单数据  355



    10.3  优化现有架构  362



    10.3.1  使用单独的文件保存路由配置  362



    10.3.2  优化 Location类的定义方式  366



    10.4  使用SPA替换服务器端应用程序  371



    10.4.1  在Express中配置build文件夹对应的路由  372



    10.4.2  开发URL多级路径的相关功能  374



    10.5  本章小结  375



    第Ⅳ部分  管理身份认证和用户会话



    第11章  认证用户、管理会话和 API安全  379



    11.1  如何在MEAN技术栈中实现身份认证功能  380



    11.1.1  传统方式  380



    11.1.2  在MEAN技术栈中使用传统方式  382



    11.1.3  完整的MEAN技术栈方式  382



    11.2  为MongoDB创建user模式  384



    11.2.1  单向密码加密:hash和salt  384



    11.2.2  构建Mongoose模式  385



    11.2.3  基本的user模式  385



    11.2.4  使用Mongoose方法设置加密属性  386



    11.2.5  验证提交的密码  387



    11.2.6  生成JSON Web Token  388



    11.3  使用Passport创建身份认证API  391



    11.3.1  安装和配置Passport  392



    11.3.2  创建API终端以返回JWT  395



    11.4  保护相关的API终端  400



    11.4.1  向Express路由添加身份认证中间件  400



    11.4.2  在控制器中使用JWT信息  403



    11.5  本章小结  406



    第12章  在Angular应用程序中 使用身份认证API  407



    12.1  创建Angular身份认证服务  407



    12.1.1  在Angular中管理用户会话  408



    12.1.2  允许用户注册、登录和注销  410



    12.1.3  在Angular服务中使用JWT数据  413



    12.2  创建Register和Login页面  414



    12.2.1  创建Register页面  415



    12.2.2  构建Login页面  420



    12.3  在Angular应用程序中使用身份认证  423



    12.3.1  更新导航  423



    12.3.2  为导航添加右侧区域  423



    12.4  本章小结  434



    附录A  安装MEAN技术栈  435



    附录B  安装其他技术栈  439



    附录C  改造所有视图  447



    附录D  再次介绍JavaScript  457
  • 内容简介:
    ● MongoDB 4、Express 4、Angular 7和Node.js 11

      ● MEAN技术栈架构

      ● 适用于移动设备的Web应用

      ● 关于效率和可重用性方面的更佳实践
  • 作者简介:
    Simon Holmes从2000年开始从事全栈开发工作,同时也是一名解决方案架构师、讲师、团队领导和项目经理。他还经营着一家培训公司,名为Full Stack Training Ltd。Simon 的开发经验非常丰富,通过实际工作中的指导和训练,他非常了解人们的痛点。



     



    Clive Harber从13岁开始编写计算机程序。他从威尔士斯望西大学取得化学工程硕士学位,多年来为体育和博彩业、电信、医疗保健和零售业编写过使用多种编程语言和不同范例的代码。现阶段,他希望能够为编程社区贡献自己的力量。Clive曾担任Manning出版社其他书籍的审校者和技术审校者,包括《Vue.js实战》、Testing Vue.js Applications、《React实战》、Elixir in Action、Mesos in Action、Usability Matters、《Mountebank微服务测试》、Cross-Platform Desktop Applications和Web Components in Action。
  • 目录:
    第Ⅰ部分  设置基线



    第1章  全栈开发介绍  3



    1.1  为何学习全栈  4



    1.1.1  Web开发简史  4



    1.1.2  全栈开发的趋势  6



    1.1.3  学习全栈开发的益处  7



    1.1.4  为何专门介绍MEAN  7



    1.2  Node.js介绍  8



    1.2.1  JavaScript:MEAN技术栈中唯一的语言  9



    1.2.2  快速、高效和可扩展  9



    1.2.3  通过npm使用预构建的包  12



    1.3  Express介绍  13



    1.3.1  简化服务器配置  13



    1.3.2  路由响应URL  13



    1.3.3  视图:HTML响应  13



    1.3.4  通过会话记录访问者的信息  14



    1.4  MongoDB介绍  14



    1.4.1  关系数据库与文档数据库  14



    1.4.2  MongoDB文档:JavaScript数据存储  15



    1.4.3  不止是文档数据库  16



    1.4.4  MongoDB的不足之处  16



    1.4.5  Mongoose:关于数据建模更多的事  16



    1.5  Angular介绍  17



    1.5.1  jQuery和Angular  18



    1.5.2  双向数据绑定:处理页面中的数据  18



    1.5.3  使用Angular加载新页面  18



    1.5.4  Angular的缺陷  19



    1.5.5  使用TypeScript进行开发  20



    1.6  相关配套支持  20



    1.6.1  使用Twitter Bootstrap创建用户界面  20



    1.6.2  使用Git管理源代码的版本  21



    1.6.3  使用Heroku作为主机  22



    1.7  结合实际示例将它们结合到一起  22



    1.7.1  介绍应用程序示例  22



    1.7.2  MEAN技术栈组件如何协同工作  24



    1.8  本章小结  24



    第2章  设计MEAN技术栈架构  27



    2.1  通用的MEAN技术栈架构  27



    2.2  进一步了解单页面应用  28



    2.2.1  对搜索引擎不友好  29



    2.2.2  Google Analytics和浏览器历史记录  30



    2.2.3  初始化速度  30



    2.2.4  选择单页面应用还是非单页面应用  31



    2.3  设计一种灵活的MEAN架构  32



    2.3.1  博客引擎需求  32



    2.3.2  博客引擎架构  33



    2.3.3  最佳实践:为数据层构建内部API  36



    2.4  规划真实的应用程序  37



    2.4.1  整体规划应用程序  38



    2.4.2  设计应用程序的架构  39



    2.4.3  将所有内容封装到Express项目中  41



    2.4.4  最终产品  42



    2.5  将开发按阶段规划  42



    2.5.1  快速成型的开发阶段  43



    2.5.2  构建Loc8r的步骤  44



    2.6  硬件架构  50



    2.6.1  开发环境需要的硬件  50



    2.6.2  生产环境需要的硬件  50



    2.7  本章小结  52



    第Ⅱ部分  构建Node Web应用程序



    第3章  创建并设置MEAN项目  55



    3.1  Express、Node和npm简介  57



    3.1.1  使用package.json定义包  57



    3.1.2  package.json文件中的依赖版本号  58



    3.1.3  使用npm安装Node依赖  58



    3.2  创建Express项目  60



    3.2.1  安装工具  60



    3.2.2  查看安装状态  61



    3.2.3  创建项目文件夹  61



    3.2.4  配置Express  61



    3.2.5  创建并运行Express项目  63



    3.2.6  重启应用程序  66



    3.3  支持MVC的Express  67



    3.3.1  MVC总览  68



    3.3.2  改变文件夹结构  68



    3.3.3  使用改变位置后的视图和路由  69



    3.3.4  从路由中拆分控制器  71



    3.4  导入Bootstrap以快速实现响应式布局  74



    3.4.1  下载并添加Bootstrap到应用程序中  74



    3.4.2  在应用程序中使用Bootstrap  75



    3.5  使用Heroku  78



    3.5.1  设置Heroku  78



    3.5.2  使用Git将网站发布到线上URL  80



    3.6  本章小结  83



    第4章  使用Node和Express构建静态站点  85



    4.1  定义Express路由  86



    4.2  构建基本控制器  89



    4.2.1  设置控制器  89



    4.2.2  测试控制器和路由  91



    4.3  创建视图  92



    4.3.1  使用Bootstrap  93



    4.3.2  使用Pug模板和Bootstrap设置HTML框架  94



    4.3.3  构建模板  99



    4.4  添加其他视图  103



    4.4.1  地点详情页  104



    4.4.2  添加评论页  108



    4.4.3  添加关于页  109



    4.5  将数据从视图中分离,让视图更智能  111



    4.5.1  将数据从视图移到控制器  113



    4.5.2  处理复杂的重复数据模型  115



    4.5.3  操作数据和视图  119



    4.5.4  使用include和mixin创建可重用的布局组件  120



    4.5.5  查看主页  122



    4.5.6  更新其他视图和控制器  124



    4.6  本章小结  125



    第5章  使用MongoDB和Mongoose构建数据模型  127



    5.1  使用Mongoose将Express应用程序连接到MongoDB  129



    5.1.1  将Mongoose添加到应用程序  130



    5.1.2  将Mongoose连接添加到应用程序  131



    5.2  为什么要为数据建模  137



    5.2.1  Mongoose的定义及工作原理  138



    5.2.2  使用Mongoose进行数据建模  139



    5.2.3  分解模式路径  140



    5.3  定义简单的Mongoose模式  141



    5.3.1  模式的基本设置  141



    5.3.2  在MongoDB和Mongoose中使用地理位置数据  144



    5.3.3  使用子文档创建复杂模式  146



    5.3.4  最终的模式结果  152



    5.3.5  将Mongoose模式编译为模型  154



    5.4  使用MongoDB shell创建MongoDB数据库并添加数据  156



    5.4.1  MongoDB shell基本知识  156



    5.4.2  创建MongoDB数据库  158



    5.5  将数据库发布到线上环境  161



    5.5.1  设置mLab并获取数据库URI  162



    5.5.2  推送数据  164



    5.5.3  让应用程序使用正确的数据库  166



    5.6  本章小结  169



    第6章  编写REST API:向应用程序公开MongoDB数据库  171



    6.1  REST API规则  172



    6.1.1  请求URL  173



    6.1.2  请求方式  174



    6.1.3  响应和状态码  176



    6.2  在Express中设置API  177



    6.2.1  创建路由  178



    6.2.2  创建占位控制器  180



    6.2.3  从Express请求返回JSON数据  181



    6.2.4  导入控制器  181



    6.2.5  测试API  183



    6.3  GET请求方式:从MongoDB读取数据  184



    6.3.1  在MongoDB中使用Mongoose查找单个文档  184



    6.3.2  根据ID查找单个子文档  188



    6.3.3  使用地理位置查询多个文档  191



    6.4  Post请求方式:向MongoDB添加数据  198



    6.4.1  在MongoDB中创建文档  198



    6.4.2  使用Mongoose校验数据  200



    6.4.3  在MongoDB中创建新的子文档  202



    6.5  PUT请求方式:更新MongoDB数据  206



    6.5.1  在MongoDB中使用Mongoose更新文档  206



    6.5.2  使用Mongoose的save方法  206



    6.5.3  更新MongoDB中已存在的子文档  209



    6.6  DELETE请求方式:删除MongoDB数据  211



    6.6.1  删除MongoDB中的文档  211



    6.6.2  删除MongoDB中的子文档  213



    6.7  本章小结  215



    第7 章  消费REST API:使用来自 Express内部的API  217



    7.1  如何调用Express API  218



    7.1.1  添加request模块  218



    7.1.2  设置默认选项  219



    7.1.3  使用request模块  219



    7.2  使用API返回列表数据:Loc8r主页  221



    7.2.1  关注分离:将渲染移入命名函数  221



    7.2.2  构建API请求  222



    7.2.3  使用API响应数据  223



    7.2.4  在展示数据前修改数据:修改距离值  225



    7.2.5  捕获API返回的错误  227



    7.3  从API获取单个文档:Details页面  232



    7.3.1  关注分离:将渲染移入命名函数  234



    7.3.2  使用URL中的ID参数查询API  234



    7.3.3  将数据从API传递到视图  235



    7.3.4  调试并修复视图错误  236



    7.3.5  使用Pug mixin格式化日期数据  238



    7.3.6  创建基于返回状态的错误页  239



    7.4  通过API向数据库添加数据:添加Loc8r用户评论  242



    7.4.1  设置路由和视图  242



    7.4.2  提交评论数据到API  247



    7.5  通过数据验证保护数据完整性  249



    7.5.1  在模式中使用Mongoose验证  249



    7.5.2  使用Node和Express在应用程序层进行验证  253



    7.5.3  使用jQuery在浏览器中进行验证  255



    7.6  本章小结  256



    第Ⅲ部分  使用Angular创建动态页面



    第8章  使用TypeScript开发Angular应用程序  259



    8.1  创建并运行Angular  260



    8.1.1  使用命令行创建Angular模板应用程序  260



    8.1.2  运行 Angular应用程序  262



    8.1.3  应用程序的源代码  262



    8.2  开发 Angular 组件  269



    8.2.1  创建新的home-list组件  269



    8.2.2  创建 HTML模板  271



    8.2.3  从模板向组件迁移数据  274



    8.2.4  在HTML模板中引用类的成员变量  277



    8.3  从API接口中获取数据  284



    8.3.1  创建数据服务  285



    8.3.2  调用数据服务  288



    8.4  在生产环境中部署Angular应用程序  292



    8.4.1  构建生产环境中的Angular应用程序  292



    8.4.2  集成Express站点和Angular应用程序  292



    8.5  本章小结  295



    第9章  使用Angular开发单页面应用:基础  297



    9.1  为Angular SPA添加跳转功能  298



    9.1.1  导入Angular路由模块并定义第一个路由  299



    9.1.2  路由配置  299



    9.1.3  创建framework组件以及导航栏  300



    9.1.4  使用router-outlet定义显示内容  302



    9.1.5  在不同页面之间跳转  303



    9.1.6  为跳转链接增加选中样式  305



    9.2  使用多个嵌套组件构建模块化的应用程序  306



    9.2.1  创建homepage组件  307



    9.2.2  创建并使用可复用组件  309



    9.3  根据地理位置查找附近地点  316



    9.3.1  创建Angular 地理位置服务  316



    9.3.2  在应用程序中添加地理位置服务  318



    9.3.3  在home-list组件中使用地理位置服务  319



    9.4  安全绑定 HTML片段  324



    9.4.1  完善关于页的内容  324



    9.4.2  创建用于转义换行符的管道  325



    9.4.3  属性绑定:安全地绑定HTML片段  327



    9.5  挑战  328



    9.6  本章小结  329



    第10章  使用Angular开发单 页面应用:进阶  331



    10.1  处理更复杂的视图和路由参数  332



    10.1.1  规划页面布局  332



    10.1.2  创建组件  333



    10.1.3  根据URL参数设置和定义路由  335



    10.1.4  在组件和服务中使用URL参数  337



    10.1.5  向详情页组件传递数据  341



    10.1.6  构建详情页视图  343



    10.2  处理表单和提交数据  349



    10.2.1  使用Angular添加评价  350



    10.2.2  向API提交表单数据  355



    10.3  优化现有架构  362



    10.3.1  使用单独的文件保存路由配置  362



    10.3.2  优化 Location类的定义方式  366



    10.4  使用SPA替换服务器端应用程序  371



    10.4.1  在Express中配置build文件夹对应的路由  372



    10.4.2  开发URL多级路径的相关功能  374



    10.5  本章小结  375



    第Ⅳ部分  管理身份认证和用户会话



    第11章  认证用户、管理会话和 API安全  379



    11.1  如何在MEAN技术栈中实现身份认证功能  380



    11.1.1  传统方式  380



    11.1.2  在MEAN技术栈中使用传统方式  382



    11.1.3  完整的MEAN技术栈方式  382



    11.2  为MongoDB创建user模式  384



    11.2.1  单向密码加密:hash和salt  384



    11.2.2  构建Mongoose模式  385



    11.2.3  基本的user模式  385



    11.2.4  使用Mongoose方法设置加密属性  386



    11.2.5  验证提交的密码  387



    11.2.6  生成JSON Web Token  388



    11.3  使用Passport创建身份认证API  391



    11.3.1  安装和配置Passport  392



    11.3.2  创建API终端以返回JWT  395



    11.4  保护相关的API终端  400



    11.4.1  向Express路由添加身份认证中间件  400



    11.4.2  在控制器中使用JWT信息  403



    11.5  本章小结  406



    第12章  在Angular应用程序中 使用身份认证API  407



    12.1  创建Angular身份认证服务  407



    12.1.1  在Angular中管理用户会话  408



    12.1.2  允许用户注册、登录和注销  410



    12.1.3  在Angular服务中使用JWT数据  413



    12.2  创建Register和Login页面  414



    12.2.1  创建Register页面  415



    12.2.2  构建Login页面  420



    12.3  在Angular应用程序中使用身份认证  423



    12.3.1  更新导航  423



    12.3.2  为导航添加右侧区域  423



    12.4  本章小结  434



    附录A  安装MEAN技术栈  435



    附录B  安装其他技术栈  439



    附录C  改造所有视图  447



    附录D  再次介绍JavaScript  457
查看详情
12
相关图书 / 更多
MEAN全栈开发(第2版) 使用Mongo、Express、 Angular和Node
MEMS系统级建模
冯丽红 著;[德]塔玛拉·贝克唐德(TamaraBechtold)、[德]加布里尔·施拉德(GabrieleSchrag)、周再发、李伟华、黄庆安 译
MEAN全栈开发(第2版) 使用Mongo、Express、 Angular和Node
METS测试与评析(四级)
施荣根、汪媛 编
MEAN全栈开发(第2版) 使用Mongo、Express、 Angular和Node
MEMS技术前沿与应用发展
尤政、赵嘉昊 著
MEAN全栈开发(第2版) 使用Mongo、Express、 Angular和Node
MEMS压力传感器理论与技术
蒋庄德 著
MEAN全栈开发(第2版) 使用Mongo、Express、 Angular和Node
MEMS光纤声压传感器技术
金鹏
MEAN全栈开发(第2版) 使用Mongo、Express、 Angular和Node
MES应用与实践(活页式教材高等职业教育新形态系列教材)
孙志平、郭志飞 编
MEAN全栈开发(第2版) 使用Mongo、Express、 Angular和Node
MES在智能制造中的应用与实践
广州高谱技术有限公司
MEAN全栈开发(第2版) 使用Mongo、Express、 Angular和Node
MEM面试通关指南(精编版)·校盐硕士图书系列
罗莎莎;史晓天
MEAN全栈开发(第2版) 使用Mongo、Express、 Angular和Node
MES选型与实施指南
e-works、黄培 著
MEAN全栈开发(第2版) 使用Mongo、Express、 Angular和Node
MEMO2019:《三联生活周刊》的观察与态度
三联生活周刊编辑部
MEAN全栈开发(第2版) 使用Mongo、Express、 Angular和Node
MEMS/NEMS谐振器技术
张文明;胡开明
MEAN全栈开发(第2版) 使用Mongo、Express、 Angular和Node
MEMS三维芯片集成技术
江刺正喜 主编
您可能感兴趣 / 更多