零、前言

近年来 JavaScript 编程语言的创新至关重要。例如,自 2009 年以来,Node 的兴起使开发人员能够在浏览器和后端使用相同的编程语言。2017 年,环境变化也没有放缓。这本书将教你一些新的和热门的概念,这些概念将加速整个堆栈开发过程。 2016 年和 2017 年,对于使用 Falcor 或 GraphQL 等全堆栈技术使应用更快的需求更大。本书不仅仅是关于如何在 Node 中公开 API 端点并开始使用客户端应用的指南。您将学习如何使用 Netflix 的最新技术 Falcor。除此之外,您还将学习如何使用 React 和 Redux 设置项目。 在本书中,你会发现一个巨大的教程,介绍如何使用 Node.js、Express.js、MongoDB、Mongoose、Falcor 和 Redux 库从头开始构建一个完整的堆栈应用。您还将学习如何使用 Docker 和 Amazon 的 AWS 服务部署应用。

这本书涵盖的内容

第 1 章使用 Node.js、Express.js、MongoDB、Mongoose、Falcor 和 Redux配置全栈,让您从头开始应用的初始设置。它可以帮助您了解 npm 中的不同库如何制作一个可用的全栈 React 初学者工具包。

第 2 章我们发布应用的全栈登录和注册,指导您如何设置 JWT 令牌,以实现基本的全栈认证机制。

第三章服务器端渲染教您如何在应用中添加服务器端渲染,这有助于加快应用执行和搜索引擎优化。

第 4 章客户端的高级 Redux 和 Falcor向您展示了如何向应用添加更多高级功能,如集成的 WYSIWYG 编辑器和从应用用户角度扩展应用的材质 UI 组件。

第 5 章Falcor Advanced Concepts向您介绍了 Falcor 及其后端 Falcor 路由的更详细的后端相关开发指南。

第 6 章AWS S3 用于图像上传和包装关键应用功能,指导您完成发布应用的文章封面照片上传过程。

第 7 章在 mLab上部署 MongoDB,教您如何为应用准备远程数据库。

第 8 章Docker 和 EC2 集装箱服务向您介绍 AWS/Docker 的设置。

第 9 章与单元和行为测试的持续集成,向您展示了为发布的应用准备 CI 和测试所需的内容。

这本书你需要什么

这本书是使用 macOS El Capitan 和 Sierra 编写的。它是在 Linux Ubuntu 和 Windows 10 机器上测试的(关于这三种操作系统之间的差异,已经添加了一些附加注释)。

工具集安装的其余部分如第 1 章所示,使用 Node.js、Express.js、MongoDB、Mongoose、Falcor 和 Redux配置全栈。

这本书是给谁的

您想从头开始构建和理解完整的堆栈开发吗?那么这本书是给你的。

如果您是一名 React 开发人员,正在寻找一种方法来改进您的全堆栈开发技能集,那么您也可以在家里。您将使用最新的技术从头开始构建下一个完整的堆栈发布应用。使用端到端指导创建您的第一个全栈应用。

我们在书中假设您已经具备 React 库的基本知识。

习俗

在本书中,您将发现许多文本样式可以区分不同类型的信息。下面是这些风格的一些例子,并解释了它们的含义。

文本中的代码字、数据库表名、文件夹名、文件名、文件扩展名、路径名、虚拟 URL、用户输入和 Twitter 句柄如下所示:“在项目目录中,创建一个名为initData.js的文件。”

代码块设置如下:

[
    {
        articleId: '987654',
        articleTitle: 'Lorem ipsum - article one',
        articleContent: 'Here goes the content of the article'
    },
    {
        articleId: '123456',
        articleTitle: 'Lorem ipsum - article two',
        articleContent: 'Sky is the limit, the content goes here.'
    }
]

任何命令行输入或输出的编写方式如下:

mkdir server
cd server
touch index.js

新术语重要词语以粗体显示。您在屏幕上(例如,在菜单或对话框中)看到的单词出现在文本中,如下所示:“通过单击创建链接创建具有默认值的连接。”

Warnings or important notes appear in a box like this. Tips and tricks appear like this.

读者反馈

我们欢迎读者的反馈。让我们知道你对这本书的看法你喜欢还是不喜欢。读者反馈对我们来说很重要,因为它可以帮助我们开发出您将真正从中获得最大收益的标题。

要向我们发送总体反馈,只需发送电子邮件feedback@packtpub.com,并在邮件主题中提及该书的标题。

如果您对某个主题有专业知识,并且您有兴趣撰写或贡献一本书,请参阅我们的作者指南www.packtpub.com/authors

客户支持

既然您是一本 Packt 图书的骄傲拥有者,我们有很多东西可以帮助您从购买中获得最大收益。

下载示例代码

您可以从您的帐户下载本书的示例代码文件 http://www.packtpub.com 。如果您在其他地方购买了本书,您可以访问http://www.packtpub.com/support 并注册,将文件直接通过电子邮件发送给您。

您可以通过以下步骤下载代码文件:

  1. 使用您的电子邮件地址和密码登录或注册我们的网站。
  2. 将鼠标指针悬停在顶部的“支持”选项卡上。
  3. 点击代码下载和勘误表。
  4. 在搜索框中输入图书的名称。
  5. 选择要下载代码文件的书籍。
  6. 从您购买本书的下拉菜单中选择。
  7. 点击代码下载。

下载文件后,请确保使用以下最新版本解压或解压缩文件夹:

  • WinRAR/7-Zip for Windows
  • 适用于 Mac 的 Zipeg/iZip/UnRarX
  • 适用于 Linux 的 7-Zip/PeaZip

该书的代码包也托管在 GitHub 上的https://github.com/PacktPublishing/Mastering-Full-Stack-React-Web-Development 。我们在上还提供了丰富的书籍和视频目录中的其他代码包 https://github.com/PacktPublishing/ 。看看他们!

下载本书的彩色图像

我们还为您提供了一个 PDF 文件,其中包含本书中使用的屏幕截图/图表的彩色图像。彩色图像将帮助您更好地了解输出中的更改。您可以从下载此文件 https://www.packtpub.com/sites/default/files/downloads/MasteringFullStackReactWebDevelopment_ColorImages.pdf

勘误表

虽然我们已尽一切努力确保内容的准确性,但错误确实会发生。如果您在我们的一本书中发现错误,可能是文本或代码中的错误,如果您能向我们报告,我们将不胜感激。通过这样做,您可以使其他读者免于沮丧,并帮助我们改进本书的后续版本。如果您发现任何错误,请访问进行报告 http://www.packtpub.com/submit-errata ,选择您的书籍,点击勘误表提交表单链接,然后输入勘误表的详细信息。一旦您的勘误表得到验证,您的提交将被接受,勘误表将上载到我们的网站或添加到该标题勘误表部分下的任何现有勘误表列表中。

要查看之前提交的勘误表,请转至https://www.packtpub.com/books/content/support 并在搜索字段中输入图书名称。所需信息将出现在勘误表部分下。

盗版行为

在互联网上盗版版权材料是所有媒体都面临的一个持续问题。在 Packt,我们非常重视版权和许可证的保护。如果您在互联网上发现任何形式的非法复制品,请立即向我们提供地址或网站名称,以便我们采取补救措施。

请致电copyright@packtpub.com与我们联系,并提供可疑盗版材料的链接。

我们感谢您在保护我们的作者方面提供的帮助以及我们为您带来有价值内容的能力。

问题

如果您对本书的任何方面有任何问题,可以通过questions@packtpub.com与我们联系,我们将尽力解决该问题。