Category : 教程系列

作者选择Creative Commons接受捐赠,作为Write for DOnations计划的一部分。 介绍 在本教程中,您将通过向组件传递props来创建自定义组件。道具是您提供给JSX 元素的参数。它们看起来像标准的 HTML 道具,但它们不是预定义的,可以有许多不同的JavaScript 数据类型,包括数字、字符串、函数、数组,甚至其他React 组件。您的自定义组件可以使用 props 来显示数据或使用数据使组件具有交互性。道具是创建可适应不同情况的组件的关键部分,了解它们将为您提供开发可处理独特情况的自定义组件的工具。 向组件添加 props 后,您将使用PropTypes来定义期望组件接收的数据类型。PropTypes是一个简单的类型系统,用于在运行时检查数据是否与预期类型匹配。它们既是文档又是错误检查器,有助于在扩展时保持应用程序的可预测性。 在本教程结束时,您将使用各种方法props构建一个小型应用程序,该应用程序将获取一系列动物数据并显示信息,包括名称、科学名称、大小、饮食和其他信息。 注意:第一步设置一个空白项目,您将在该项目上构建教程练习。如果您已经有一个工作项目并想直接使用 props,请从第 2 步开始。 先决条件 你需要一个运行Node.js的开发环境;本教程在 Node.js 版本 10.20.1 和 npm 版本 6.14.4 上进行了测试。要在 macOS 或 Ubuntu 18.04 上安装它,请按照如何在 macOS 上安装 Node.js 和创建本地开发环境或如何在 Ubuntu 18.04 上安装 Node.js 的使用 PPA 安装部分中的步骤进行操作。 在本教程中,您将使用Create React App。您可以在如何使用 Create React App设置 React 项目中找到使用 ..

Read more

该系列的一部分: 如何使用 HTML 构建网站 本教程系列将指导您使用 HTML(用于在 Web 浏览器中显示文档的标准标记语言)创建和进一步自定义该网站。不需要有任何编码经验,但如果您想重新创建演示网站,我们建议您从本系列的开头开始。 在本系列结束时,您应该有一个准备好部署到云的网站,并且基本熟悉 HTML。了解如何编写 HTML 将为学习其他前端 Web 开发技能(例如 CSS 和 JavaScript)奠定坚实的基础。 HTML属性可用于更改 HTML 元素的颜色、大小和其他特性。例如,您可以使用属性来更改文本元素的字体颜色或大小或图像元素的宽度和高度。在本教程中,我们将学习如何使用 HTML 属性来设置 HTML 文本元素的大小和颜色属性值。 HTML 属性放置在开始标记中,如下所示: <element attribute=”property:value;”> 一个常见的属性是style,它允许您向 HTML 元素添加样式属性。虽然使用单独的样式表来确定 HTML 文档的样式更为常见,但我们将在本教程的 HTML 文档中使用 style 属性。 使用样式属性 我们可以<h1>使用 style 属性更改元素的多个属性。清除“index.html”文件并将以下代码粘贴到浏览器中。(如果您还没有关注教程系列,您可以index.html在我们的教程设置您的 HTML 项目 中查看设置文件的说明。 <h1 style=”font-size:40px;color:green;”>This text is 40 pixels and green.</h1> 在我们在浏览器中加载文件之前,让我们回顾一下这个 HTML 元素的每个部分: ..

Read more

作为Write for DOnations计划的一部分,作者选择了免费和开源基金来接受捐赠。 介绍 网页抓取,也称为网页抓取,使用机器人从网站中提取、解析和下载内容和数据。 您可以使用一台机器从几十个网页中抓取数据,但是如果您必须从数百甚至数千个网页中检索数据,您可能需要考虑分配工作负载。 在本教程中,您将使用Puppeteer来抓取books.toscrape,这是一个虚构的书店,作为初学者学习网络抓取和开发人员验证他们的抓取技术的安全场所。在撰写本文时,books.toscrape 上有 1000 本书,因此您可以抓取 1000 个网页。但是,在本教程中,您将只抓取前 400 个。为了在短时间内抓取所有这些网页,您将构建一个包含Express Web 框架和 Puppeteer 浏览器控制器的可扩展应用程序并将其部署到Kubernetes集群。为了与您的抓取工具进行交互,您将构建一个包含axios的应用程序,一个基于Promise的 HTTP 客户端,以及lowdb,一个用于 Node.js 的小型 JSON 数据库。 完成本教程后,您将拥有一个能够同时从多个页面提取数据的可扩展刮刀。例如,使用默认设置和三节点集群,在books.toscrape 上抓取400 页只需不到2 分钟。扩展集群后,大约需要 30 秒。 警告:网络抓取的道德和合法性非常复杂且不断发展。它们还因您的位置、数据位置和相关网站而异。本教程抓取了一个专门的网站,books.toscrape.com,专门用于测试刮刀应用程序。抓取任何其他域不在本教程的范围内。 先决条件 要学习本教程,您需要一台具有以下功能的机器: 安装了 Docker。按照我们关于如何安装和使用 Docker 的教程获取说明。Docker 的网站提供了其他操作系统(如 macOS 和 Windows)的安装说明。 Docker Hub 上用于存储 Docker 映像的帐户。 Kubernetes 1.17+ 集群,将您的连接配置设置为kubectl默认值。要在 DigitalOcean 上创建 Kubernetes 集群,请阅读我们的Kubernetes 快速入门。要连接到集群,请阅读如何连接到 DigitalOcean ..

Read more

本教程的早期版本由Justin Ellingwood编写。 介绍 MongoDB,也称为Mongo,是许多现代 Web 应用程序中使用的面向文档的数据库。它被归类为NoSQL 数据库,因为它不依赖于传统的基于表的关系数据库结构。相反,它使用具有动态模式的类 JSON 文档。这意味着,与关系数据库不同,MongoDB 在向数据库添加数据之前不需要预定义的模式。 使用数据库时,拥有多个数据副本通常很有用。这在其中一个数据库服务器发生故障时提供了冗余,并且可以提高数据库的可用性和可扩展性,以及减少读取延迟。跨多个独立数据库同步数据的做法称为复制。在 MongoDB 中,一组通过复制维护相同数据集的服务器称为副本集。 本教程简要概述了 MongoDB 中的复制工作原理,并概述了如何配置和启动具有三个成员的副本集。在此示例配置中,副本集的每个成员将是在单独的 Ubuntu 20.04 服务器上运行的不同 MongoDB 实例。 注意:请注意,本指南中概述的过程旨在演示如何快速设置和运行副本。完成本教程后,您将拥有一个正常运行的副本集,但它不会启用任何安全功能。不建议将此设置用于生产环境。 MongoDB 的社区版本带有两种身份验证方法,可以帮助确保您的数据库安全,密钥文件身份验证和x.509 身份验证。对于采用复制的生产部署,MongoDB 文档建议使用 x.509 身份验证,并将密钥文件描述为“最适合测试或开发环境”的“最低限度的安全形式”。但是,获取和配置 x.509 证书的过程伴随着许多必须根据具体情况做出的警告和决定,这超出了 DigitalOcean 教程的范围。 如果您计划使用您的副本集进行测试或开发,我们强烈建议您遵循我们的教程如何在 Ubuntu 20.04 上为 MongoDB 副本集配置密钥文件身份验证。 先决条件 要完成本指南,您需要: 三台服务器,每台运行 Ubuntu 20.04。所有这三个服务器都应该有一个非 root 管理用户和一个配置有 UFW 的防火墙。要进行设置,请按照我们针对 Ubuntu 20.04 的初始服务器设置指南进行操作。 MongoDB 安装在您的每台 Ubuntu 服务器上。为此,请遵循我们关于如何在 Ubuntu ..

Read more

Introduction If you’ve ever built a web app, there’s a good chance you’ve built a tabbed document interface at one point or another. Tabs allow you to break up complex interfaces into manageable subsections that a user can quickly switch between. Tabs are a common UI component and are important to understand how to implement. ..

Read more

介绍 您可以使用<script>标签将 Javascript 插入 HTML 内联或作为外部文件。本教程演示了这两种方法。 先决条件 HTML5 的一般知识。要全面了解 HTML5 标记语言,请浏览我们的系列“如何用 HTML 构建网站”。 Javascript 的一般知识。要全面了解 Javascript,请浏览我们的系列“如何在 Javascript 中编码”。 使用<script>标签将 Javascript 插入 HTML 以下是如何在 HTML 文档中插入外部 JavaScript 文件或一些内联 JavaScript。 要插入外部脚本文件: <script src=”doStuff.js”></script> 要插入内联脚本: <script> // your code here </script> 请记住,您插入 JavaScript 的位置会影响加载顺序。像 jQuery 本身这样的基本内容通常放在<head>部分中,而可以最后加载的内容(如跟踪脚本)通常可以在结束</body>标记之前。 type=”text/javascript” type=”text/javascript”是一个可选的声明,从 HTML5 开始就不需要了。您仍会在遗留代码中看到它,但您不必在自己的代码中使用它。 结论 <script> 是 HTML 中最常见和最重要的标签之一。 要更全面地了解 HTML5 标记语言,请浏览我们的系列,如何用 ..

Read more

作者选择FreeBSD 基金会作为Write for DOnations计划的一部分接受捐赠。 如何在 Go Usinggo test和testingPackage 中编写单元测试 介绍 单元测试是测试程序或包中特定代码段的功能。单元测试的工作是检查应用程序的正确性,它们是Go 编程语言的关键部分。 在本教程中,您将创建一个小程序,然后使用 Go 的testing包和go test命令对您的代码运行一系列测试。完成本教程后,您将拥有一个工作单元测试套件,其中包括基于表格的单元测试、覆盖测试、基准测试和文档化示例。 先决条件 要完成本教程,您需要具备以下条件: 熟悉 Go 编程语言。请访问我们的教程系列/电子书How To Code in Go,了解该语言的广泛介绍。 Go 1.11或更高版本安装在您的本地机器上。您可以按照这些说明在Linux、macOS和Windows上安装 Go 。在 macOS 上,您还可以使用 Homebrew 包管理器安装 Go。 注意:本教程使用 Go Modules,它是 Go 1.11 版本中引入的包管理系统。Go Modules 旨在取代 $GOPATH 并从 Go 1.13 版开始成为默认选项。要更全面地了解 Go Modules 和 $GOPATH 之间的差异,请考虑阅读 Go 核心团队的这篇官方博客文章。 本教程使用 ..

Read more

介绍 morgan是一个 Node.js 和 Express 中间件,用于记录 HTTP 请求和错误,并简化流程。在Node.js和受快递,中间件是可以访问的功能request和response生命周期方法,并next()继续在您的Express服务器的逻辑方法。 在本文中,您将探索如何在 Express 项目中实现摩根。 先决条件 要阅读本文,您需要: 建议对 Node.js 有一个大致的了解,但不是必需的。要了解有关 Node.js 的更多信息,请查看我们的如何在 Node.js 中编码系列。 Node.js 安装在本地,您可以按照如何安装 Node.js 和创建本地开发环境来完成。 步骤 1 – 设置项目 由于 Express.js 是一个 Node.js 框架,因此在继续之前,请确保您拥有来自Node.js的最新版本的 Node.js。 要将摩根包含在您的 Express 项目中,您需要将其安装为依赖项。 创建一个以express-morgan您的项目命名的新目录: mkdir express-morgan 切换到新目录: cd express-morgan 使用默认值初始化一个新的 Node 项目。这将包含package.json用于访问依赖项的文件: npm init -y 安装 morgan 作为依赖: npm install morgan ..

Read more

作者选择了公共利益软件 (SPI)来接受捐赠,作为Write for DOnations计划的一部分。 介绍 通常,基于 Linux 的服务器不会预装图形用户界面 (GUI)。每当您想在实例上运行 GUI 应用程序时,典型的解决方案是采用虚拟网络计算 (VNC)。不幸的是,VNC 是出了名的缓慢,默认情况下不安全,并且需要大量手动配置才能启动和运行。 相比之下,X2Go提供了一个可工作的“云桌面”,具有始终在线、可远程访问和易于扩展的计算系统的所有优势,以及非常快速的网络。与许多 VNC 解决方案相比,它也更灵敏、更安全。在本教程中,您将使用 X2Go 创建一个可以远程访问的 Debian 10 XFCE桌面环境。这个“云桌面”将包含与您在个人计算机上安装 Debian 10 和 XFCE 环境时获得的完全相同的实用程序。 本教程中描述的设置在以下情况下很有用: 您需要访问基于 Linux 的操作系统,并带有桌面环境,但无法将其安装在您的个人计算机上。 您在多个位置使用多台设备,并希望拥有一个具有相同工具、相同外观、相同文件和相同性能的一致工作环境。 您的 Internet 服务提供商为您提供的带宽非常少,但您需要访问数十或数百 GB 的数据。 长时间运行的作业会使您的本地计算机数小时或数天不可用。想象一下,你必须编译一个非常大的项目,在你的笔记本电脑上需要 8 个小时。在您的项目编译期间,您将无法观看电影或做任何非常耗费资源的事情。但是,如果您在服务器上运行此类作业,现在您的计算机可以自由执行其他任务。 您正在与一个团队合作,他们拥有一台可以访问以便在项目上进行协作的公共计算机,这对他们很有好处。 先决条件 在开始本教程之前,您需要: 具有 2GB 或更多 RAM 的 Debian 10 x64 实例。2GB 是最小的,如果您计划运行内存占用较大的应用程序,建议使用 4GB 或更多的服务器。如果您愿意,可以使用DigitalOcean Droplet。 ..

Read more

介绍 Let’s Encrypt 是一个证书颁发机构 (CA),它提供了一种简单的方法来获取和安装免费的TLS/SSL 证书,从而在 Web 服务器上启用加密的 HTTPS。它通过提供软件客户端 Certbot 来简化流程,该客户端尝试自动执行大部分(如果不是全部)所需步骤。目前,获取和安装证书的整个过程在 Apache 和 Nginx 上都是完全自动化的。 在本教程中,您将使用 Certbot 在 Ubuntu 20.04 上为 Nginx 获取免费的 SSL 证书,并将您的证书设置为自动续订。 本教程将使用单独的 Nginx 服务器配置文件而不是默认文件。我们建议为每个域创建新的 Nginx 服务器块文件,因为它有助于避免常见错误并将默认文件保留为后备配置。 先决条件 要学习本教程,您需要: 按照Ubuntu 20.04教程的初始服务器设置设置一个 Ubuntu 20.04 服务器,包括启用 sudo 的非root用户和防火墙。 一个注册的域名。本教程将example.com贯穿始终。你可以购买一个域名Namecheap,免费获得一个与Freenom,或使用你选择的域名注册商。 为您的服务器设置的以下两个 DNS 记录。如果您使用的是 DigitalOcean,请参阅我们的DNS 文档以了解有关如何添加它们的详细信息。 example.com指向您服务器的公共 IP 地址的 A 记录。 指向您服务器的公共 IP 地址的 A 记录。www.example.com ..

Read more