零、前言

本书通过将 React 的强大功能与业界测试的服务器端技术(如 Node、Express 和 MongoDB)相结合,探索了开发全堆栈 JavaScript web 应用的潜力。JavaScript 领域已经快速发展了一段时间。在这个主题上有大量可用的选项和资源,当您需要从这些经常变化的部分中进行选择、了解它们并使它们协同工作以构建您自己的 web 应用时,很容易迷失方向。为了解决这个难点,本书采用了一种实用的方法来帮助您使用这个流行的 JavaScript 堆栈设置和构建各种各样的工作应用。

这本书是给谁的

本书的目标读者是 JavaScript 开发人员,他们可能对 React 有一些经验,但之前没有涉及 Node、Express 和 MongoDB 的完整堆栈开发经验,并且希望获得使用此堆栈开始构建不同类型 web 应用的实用指南。

这本书涵盖的内容

第一章使用 MERN释放 React 应用,介绍了 MERN 堆栈技术和本书开发的应用。我们将讨论使用 React、Node、Express 和 MongoDB 开发 web 应用的上下文和相关性。

第 2 章准备开发环境,帮助建立用于开发的 MERN 堆栈技术。我们将探索基本的开发工具,安装 Node、MongoDB、Express、React 和其他必需的库,然后运行代码检查设置。

第三章用 MongoDB、Express、Node构建后端,实现了一个骨架 MERN 应用的后端。我们将使用 MongoDB、Express 和 Node 构建一个独立的服务器端应用,该应用存储用户详细信息,并具有用于用户身份验证和 CRUD 操作的 API。

第 4 章增加一个 React 前端来完成 MERN,通过集成一个 React 前端来完成 MERN 骨架应用。我们将实现一个带有 React 视图的工作前端,用于与服务器上的用户 CRUD 和 auth API 交互。

第 5 章从一个简单的社交媒体应用开始,通过扩展骨架应用构建社交媒体应用。我们将通过实现社交媒体功能(如帖子共享、喜欢和评论)来探索 MERN stack 的功能;跟随朋友;和一个聚合新闻提要。

第 6 章通过在线市场练习新的 MERN 技能,实现在线市场应用中的基本功能。我们将实现与买卖相关的功能,支持卖家帐户、产品列表和产品分类搜索。

第 7 章扩展订单和支付市场,进一步构建了购物车、订单管理和支付处理的市场应用。我们将添加一个购物车功能,允许用户在购物车中下单。我们还将集成 Stripe 以收集和处理付款。

第 8 章搭建流媒体应用,使用 MongoDB GridFS 实现媒体上传和流媒体。我们将开始构建一个基本的媒体流应用,允许注册用户上传视频文件,这些文件将存储在 MongoDB 上并流回,以便观众可以在一个简单的媒体播放器中播放每个视频。

第 9 章定制媒体播放器,改进 SEO通过定制媒体播放器和自动播放媒体列表升级媒体观看能力。我们将在默认 React media player 上实现自定义控件,添加可自动播放的播放列表,并通过添加选择性服务器端渲染(仅针对 media detail 视图)来改进媒体详细信息的 SEO。

第 10 章开发基于网络的虚拟现实游戏,使用 React 360 为网络开发 3D 虚拟现实融合游戏。我们将探索 React 360 的 3D 和 VR 功能,并构建一个简单的基于 web 的 VR 游戏。

第 11 章使用 MERN动态打造 VR 游戏,通过扩展 MERN 骨架应用,整合 React 360,构建动态 VR 游戏应用。我们将实现一个游戏数据模型,允许用户创建自己的虚拟现实游戏,并将动态游戏数据与使用 React 360 开发的游戏相结合。

第 12 章遵循最佳实践并进一步开发 MERN,总结了前几章中的经验教训,并提出了进一步基于 MERN 的应用开发的改进建议。我们将扩展已经应用的一些最佳实践,例如应用结构中的模块化,应该应用的其他实践,例如编写测试代码,以及可能的改进,例如优化包大小。

充分利用这本书

本书内容的组织假设您熟悉基本的基于 web 的技术、JavaScript 编程结构的实用知识以及 React 应用的工作原理。在阅读本书的过程中,您将发现在使用 React、Node、Express 和 MongoDB 构建成熟的 web 应用时,这些概念是如何结合在一起的。

为了在阅读本章的同时获得最大的学习体验,建议您使用各章中提供的相关说明并行运行相关版本的应用代码。

下载示例代码文件

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

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

  1. 登录或注册www.packtpub.com
  2. 选择“支持”选项卡。
  3. 点击代码下载和勘误表。
  4. 在搜索框中输入图书名称,然后按照屏幕上的说明进行操作。

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

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

该书的代码包也托管在 GitHub 上的https://github.com/PacktPublishing/Full-Stack-React-Projects 。如果代码有更新,它将在现有 GitHub 存储库中更新。

我们的丰富书籍和视频目录中还有其他代码包,请访问https://github.com/PacktPublishing/ 。看看他们!

使用的惯例

本书中使用了许多文本约定。

CodeInText:表示文本中的码字、数据库表名、文件夹名、文件名、文件扩展名、路径名、虚拟 URL、用户输入和 Twitter 句柄。下面是一个示例:“将下载的WebStorm-10*.dmg磁盘映像文件作为系统中的另一个磁盘装载。”

代码块设置如下:

import path from 'path'
const CURRENT_WORKING_DIR = process.cwd()
app.use('/dist', express.static(path.join(CURRENT_WORKING_DIR, 'dist')))

当我们希望提请您注意代码块的特定部分时,相关行或项目以粗体显示:

{
    "presets": [
      "env",
      "stage-2",
      "react"
    ],
    "plugins": [
 "react-hot-loader/babel"
 ]
}

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

npm install babel-preset-react --save-dev

粗体:表示一个新术语、一个重要单词或您在屏幕上看到的单词。例如,菜单或对话框中的单词出现在文本中,如下所示。下面是一个示例:“从管理面板中选择系统信息。”

Warnings or important notes appear like this. Tips and tricks appear like this.

联系

我们欢迎读者的反馈。

一般反馈:发送电子邮件feedback@packtpub.com并在邮件主题中提及书名。如果您对本书的任何方面有疑问,请发送电子邮件至questions@packtpub.com

勘误表:尽管我们已尽一切努力确保内容的准确性,但还是会出现错误。如果您在本书中发现错误,如果您能向我们报告,我们将不胜感激。请访问www.packtpub.com/submit-errata,选择您的书籍,点击 errata 提交表单链接,然后输入详细信息。

盗版:如果您在互联网上发现我们作品的任何形式的非法复制品,请您提供我们的位置地址或网站名称,我们将不胜感激。请通过copyright@packtpub.com与我们联系,并提供该材料的链接。

如果您有兴趣成为一名作家:如果您对某个主题有专业知识,并且您有兴趣撰写或贡献一本书,请访问authors.packtpub.com

评论

请留下评论。一旦你阅读并使用了这本书,为什么不在你购买它的网站上留下评论呢?然后,潜在读者可以看到并使用您的无偏见意见做出购买决定,我们 Packt 可以了解您对我们产品的看法,我们的作者可以看到您对他们书籍的反馈。非常感谢。

有关 Packt 的更多信息,请访问packtpub.com