编辑推荐

当Web开发技术日渐成熟,各种*佳实践和模式逐渐被总结和沉淀下来,“技术栈”这个术语开始出现。技术栈通常指的是开发一个完整的Web应用程序时所需的特定工具、库、框架的组合。印象中,*个*热门的Web开发技术栈是LAMP(Linux、Apache、MySQL和PHP),随着前端在Web开发领域中所占的比例越来越大,以及Node.js的流行,MEAN技术栈(MongoDB、Express、AngularJS和Node.js)逐渐异军突起,影响力越来越大。由于MEAN技术栈的前后端全都使用了JavaScript语言,这也使得“全栈工程师”这个称呼开始流行起来。
《MERN全栈开发使用MongoExpressReact和Node》所讲述的MERN技术栈,和MEAN只有一“字母”之差。MERN将MEAN中的AngularJS更换成这两年明显更受欢迎、使用更加广泛的React,使得自己相比MEAN更接地气,更适合有志成为“全栈工程师”的Web开发人员阅读。
在阅读《MERN全栈开发 使用Mongo Express React和Node/Web开发经典丛书》以及完成《MERN全栈开发使用MongoExpressReact和Node》中所包含练习的过程中,你很自然地就会学习到如何寻找高质量的GitHub开源项目,并将它们应用到你的应用程序中。

内容简介

使用React构建现代Web应用,需要组合使用一个完整的技术栈:MongoDB
(NoSQL数据库)、Express(Web应用服务器框架)及其运行语言Node(服务器端的
JavaScript),从而形成对React技术的完美补充。《MERN全栈开发 使用Mongo Express React和Node/Web开发经典丛书》还涵盖了构建完整Web应用所
用到的诸多工具:ReactRouter、React-Bootstrap、Redux、babel以及webpack。
  《MERN全栈开发 使用MongoExpressReact和Node》旨在帮助读者掌握构建
完备Web应用的技能,书中的大部分内容都会专注于React技术的使用。
  流行的MEAN(MongoDB、Express、AngularJS、Node)技术栈引入了单页面应
用(SPA)和前端的MVC(模型-视图-控制器)模式,*了全新、高效的开发模式。不
过它也有缺点,例如缺乏能够良好支持SEO的服务器端渲染能力,以及作为框架而
言过于严格的规范性。
  Facebook创立的React技术并不是AngularJS直接的竞争对手,它并不是一个完
整的MVC框架,而是一个用于创建用户界面(某种意义上来说,就是视图部分)的
JavaScript库。然而,使用React替代AngularJS来创建Web应用也是完全可行的,这
也正是MERN技术栈存在的价值。
主要内容
●详细了解React及其编程风格,了解如何充分发挥它的能力
●了解MongoDB、Express和Node的基本功能,这些功能足以让你完成Web应用
的搭建
●学习补充React功能的相关工具,包括React-Bootstrap和ReactRouter
●使用必要的工具搭建基于JavaScript的单页面应用
●将所有组件连接在一起,构建完整的Web应用

作者简介

VasanSubramanian使用过各种各样的编程语言,从8085上手工编写8位机的汇编代码,一直到AWSLambda。他热衷于通过软件解决问题,更喜欢寻找合适的技术组合,帮助软件开发团队提高效率。他在Corel、Wipro、BarracudaNetworks软件公司学习编程,从事程序员工作的同时,也在这些公司中担任团队负责人。
Vasan就读于印度理工学院马德拉斯校区(IITMadras)和印度管理学院班加罗尔分校(IIMBangalore)。他目前在Accel公司担任CTO,为创业公司提供各种技术指导。除了提供指导、编写程序(当然还有写书!)之外,Vasan也是半程马拉松爱好者,还参加五人制足球比赛。你可以通过vasan.promern@gmail.com联系他,欢迎赞扬、批评,或是介于这两者之间的一切意见。

目录

目录

第1章 引言1

1.1 MERN是什么1

1.2 《MERN全栈开发 使用Mongo Express React和Node/Web开发经典丛书》的目标读者3

1.3 《MERN全栈开发 使用Mongo Express React和Node/Web开发经典丛书》组织结构3

1.4 格式约定5

1.5 读者须知7

1.6 MERN的组件8

1.6.1 React8

1.6.2 Node.js11

1.6.3 Express14

1.6.4 MongoDB15

1.6.5 工具与库17

1.7 为何使用MERN

技术栈19

1.7.1 清一色的JavaScript

语言19

1.7.2 清一色的JSON数据格式20

1.7.3 Node.js的性能20

1.7.4 npm生态系统21

1.7.5 同构性21

1.7.6 它不是一个框架22

1.8 小结22

第2章 HelloWorld23

2.1 脱离服务器的

HelloWorld23

2.2 服务器搭建27

2.2.1 nvm27

2.2.2 Node.js28

2.2.3 项目29

2.2.4 npm30

2.2.5 Express32

2.3 构建阶段的JSX

编译34

2.3.1 分离脚本文件35

2.3.2 转换36

2.3.3 自动化38

2.3.4 React库39

2.4 ES201539

2.5 小结43

2.6 习题答案43

2.6.1 习题:JSX43

2.6.2 习题:npm44

2.6.3 习题:Express44

2.6.4 习题:babel45

2.6.5 习题:ES201545

第3章 React组件47

3.1 IssueTracker

(问题追踪)47

3.2 React类49

3.3 组件组装51

3.4 传递数据53

3.4.1 使用属性53

3.4.2 属性校验56

3.4.3 使用Children57

3.5 动态组装59

3.6 小结64

3.7 习题答案64

3.7.1 习题:React类64

3.7.2 习题:传递数据64

3.7.3 习题:动态组装65

第4章 React状态67

4.1 设置状态67

4.2 异步状态初始化71

4.3 事件处理73

4.4 从子组件到父组件的

通信74

4.5 无状态组件77

4.6 设计组件79

4.6.1 状态与props79

4.6.2 组件层次结构80

4.6.3 通信80

4.6.4 无状态组件80

4.7 小结81

4.8 习题答案81

4.8.1 习题:设置状态81

4.8.2 习题:从子组件到

父组件的通信82

第5章 ExpressRESTAPIs83

5.1 REST83

5.1.1 基于资源84

5.1.2 使用HTTPMethods

标识操作84

5.1.3 JSON87

5.2 Express87

5.2.1 路由87

5.2.2 处理程序函数89

5.2.3 中间件91

5.3 ListAPI92

5.3.1 服务器自动重启94

5.3.2 测试95

5.4 CreateAPI97

5.5 使用ListAPI100

5.6 使用CreateAPI102

5.7 错误处理104

5.8 小结108

5.9 习题答案109

5.9.1 习题:ListAPI109

5.9.2 习题:CreateAPI110

5.9.3 习题:使用

ListAPI111

5.9.4 习题:使用

CreateAPI111

5.9.5 习题:错误处理111

第6章 使用MongoDB113

6.1 MongoDB基础113

6.1.1 文档113

6.1.2 集合114

6.1.3 查询语言115

6.1.4 安装116

6.1.5 mongoshell117

6.1.6 shell脚本121

6.2 架构初始化122

6.3 MongoDBNode.js

驱动程序123

6.3.1 回调126

6.3.2 Promises127

6.3.3 Generator和co

模块128

6.3.4 async模块129

6.4 从MongoDB读取

数据131

6.5 向MongoDB写入

数据134

6.6 小结136

6.7 习题答案136

6.7.1 习题:mongo

shell136

6.7.2 习题:架构

初始化137

6.7.3 习题:从MongoDB

读取数据137

6.7.4 习题:向MongoDB

写入数据138


前言/序言

译者序

当我第一次接触Web开发领域时,当时最热门的Web网站开发技术是使用C或Perl语言在服务器上编写CGI(CommonGatewayInterface)程序,来处理客户端发起的HTTP请求。现在我虽然已经全然忘记了Perl语言的语法,但是仍然还依稀记得当年在使用这个强大而“变态”的语言时的感受。随着Web的迅速发展,ASP、PHP、JSP、ASP.NET出现在我们的眼前,它们各具特色,为不同技术背景的开发人员进入Web开发领域提供了所需的武器。
当Web开发技术日渐成熟,各种最佳实践和模式逐渐被总结和沉淀下来,“技术栈”这个术语开始出现。技术栈通常指的是开发一个完整的Web应用程序时所需的特定工具、库、框架的组合。印象中,第一个最热门的Web开发技术栈是LAMP(Linux、Apache、MySQL和PHP),随着前端在Web开发领域中所占的比例越来越大,以及Node.js的流行,MEAN技术栈(MongoDB、Express、AngularJS和Node.js)逐渐异军突起,影响力越来越大。由于MEAN技术栈的前后端全都使用了JavaScript语言,这也使得“全栈工程师”这个称呼开始流行起来。
《MERN全栈开发使用MongoExpressReact和Node》所讲述的MERN技术栈,和MEAN只有一“字母”之差。MERN将MEAN中的AngularJS更换成这两年明显更受欢迎、使用更加广泛的React,使得自己相比MEAN更接地气,更适合有志成为“全栈工程师”的Web开发人员阅读。
在一个开放、开源的时代,如果一本讲述开发技术的书籍同时也能让你有机会了解和熟悉GitHub,那显然是极好的。在阅读《MERN全栈开发使用MongoExpressReact和Node》以及完成《MERN全栈开发使用MongoExpressReact和Node》中所包含练习的过程中,你很自然地就会学习到如何寻找高质量的GitHub开源项目,并将它们应用到你的应用程序中。
祝您享受阅读《MERN全栈开发 使用Mongo Express React和Node/Web开发经典丛书》的全过程,并能收获良多!
最后是译者的几则重要声明:
●《MERN全栈开发使用MongoExpressReact和Node》部分重要段落是由译者柴晓伟的女儿Momo完成的。谢谢Momo。
●译者杜伟的爱猫Yuki对《MERN全栈开发使用MongoExpressReact和Node》任何章节都没有贡献。
●译者涂曙光感谢Phoebe在翻译工作中所给予的所有支持。

译者(杜伟/柴晓伟/涂曙光)


其他推荐