Category : 教程系列

作为Write for DOnations计划的一部分,作者选择了开源计划来接受捐赠。 介绍 Vue.js是一个高性能的渐进式 Javascript框架。它是GitHub 上的一个流行框架,拥有一个活跃且乐于助人的社区。 为了展示 Vue Web 框架的功能,本教程将引导您构建电子商务应用程序的购物车。此应用程序将存储产品信息并保存客户想要购买的产品以供稍后结账。为了存储信息,您将探索一个广泛使用的 Vue.js 状态管理库:Vuex。这将允许购物车应用程序将数据保存到服务器。您还将使用 Vuex处理异步任务管理。 完成本教程后,您将拥有一个功能正常的购物车应用程序,如下所示: 先决条件 你需要一个运行Node.js的开发环境;本教程在 Node.js 版本 10.22.0 和 npm 版本 6.14.6 上进行了测试。要在 macOS 或 Ubuntu 18.04 上安装它,请按照如何在 macOS 上安装 Node.js 和创建本地开发环境或如何在 Ubuntu 18.04 上安装 Node.js 的使用 PPA 安装部分中的步骤进行操作。 您还需要具备 JavaScript、HTML 和 CSS 的基本知识,您可以在我们的如何使用 HTML 系列构建网站、如何使用 CSS 系列构建网站和如何使用 JavaScript 编码中找到这些知识。 步骤 1 — ..

Read more

介绍 getBoundingClientRect是JavaScript DOM(文档对象模型)的一部分,为您提供有关HTML元素大小和位置的重要数据。 在本文中,您将使用getBoundingClientRect获取元素的大小和位置。 先决条件 要完成本教程,您应该熟悉以下概念: 如何将 JavaScript 添加到 HTML 如何访问 DOM 中的元素 在 JavaScript 中使用对象,您可以通过阅读理解 JavaScript 中的对象来探索。 理解 getBoundingClientRect() 要使用getBoundingClientRect,首先获取一个 HTML 元素并调用getBoundingClientRect该元素: document.getElementById(“foo”).getBoundingClientRect(); getBoundingClientRect返回一个带有多个键/值对的对象,为您提供有关元素在网页中的大小和位置的信息。 Output{ top: 450, left: 400, right: 825, bottom: 500, x: 400, y: 450, width: 425, height: 50 } 下图描述了为每个值返回的信息: 该x和y值将等同于left和top值。正因为如此,一些浏览器省略了xandy并且只返回leftand top。 另一件需要注意的事情是right/bottom可能与你习惯的 CSS 定位不同,比如使用position: absolute. 这是一个插图,显示了值以及它们与元素的关系: 现在您已经看到了getBoundingClientRect()返回的内容,请使用相同的示例来查看您是否理解getBoundingClientRect(). 使用getBoundingClientRect中的应用 要getBoundingClientRect在您自己的代码中使用,您需要一个包含要查询的元素的 HTML ..

Read more

Apache HTTP Server 是一种流行的开源 Web 服务器,以其灵活性、强大功能和广泛的支持而闻名。它可以通过可动态加载的模块系统进行扩展,并且无需连接到单独的软件即可处理大量解释性语言。 有关 Apache Web 服务器的更多资源,请访问: 如何在 Ubuntu 20.04 上安装 Apache Web 服务器 如何在 Ubuntu 20.04 上使用 Let’s Encrypt 保护 Apache 可以在我们的Apache 标记页面上找到与 Apache 相关的教程、问题和其他教育资源的完�..

Read more

介绍 iptables 是 Linux 发行版的软件防火墙。这个备忘单风格的指南提供了 iptables 命令的快速参考,这些命令将创建在常见的日常场景中有用的防火墙规则。这包括通过端口、网络接口和源 IP 地址允许和阻止各种服务的 iptables 示例。 如何使用本指南 此处描述的大多数规则都假设您的 iptables 设置为通过默认输入策略DROP传入流量,并且您希望有选择地允许传入流量 使用适用于您要实现的目标的后续部分。大多数部分不以任何其他部分为基础,因此您可以独立使用以下示例 使用此页面右侧的“目录”菜单(在宽页面宽度下)或浏览器的查找功能来定位您需要的部分 复制并粘贴给出的命令行示例,用您自己的值替换突出显示的值 请记住,规则的顺序很重要。所有这些iptables命令都使用-A选项将新规则附加到链的末尾。如果您想将它放在链中的其他位置,您可以使用-I允许您指定新规则位置的选项(或通过不指定规则编号将其放置在链的开头)。 注意:使用防火墙时,请注意不要通过阻止 SSH 流量(默认为端口 22)将自己锁定在自己的服务器之外。如果您由于防火墙设置而无法访问,您可能需要通过基于 Web 的控制台连接到它来修复您的访问。如果您使用的是 DigitalOcean,您可以阅读我们的故障恢复控制台产品文档以获取更多信息。通过控制台连接后,您可以更改防火墙规则以允许 SSH 访问(或允许所有流量)。如果您保存的防火墙规则允许 SSH 访问,另一种方法是重新启动您的服务器。 请记住,您可以使用sudo iptables -S和来检查当前的 iptables 规则集sudo iptables -L。 我们来看看iptables命令吧! 保存规则 iptables 规则是短暂的,这意味着它们需要手动保存,以便在重新启动后保持不变。 在 Ubuntu 上,保存 iptables 规则的一种方法是使用iptables-persistent包。像这样用 apt 安装它: sudo apt install iptables-persistent 在安装过程中,系统会询问您是否要保存当前的防火墙规则。 如果您更新防火墙规则并想要保存更改,请运行以下命令: sudo ..

Read more

介绍 许多数据库设计基于某些数据点之间的关系将信息分离到不同的表中。即使在这种情况下,有时也可能有人希望一次从多个表中检索信息。 在单个结构化查询语言(SQL) 操作中访问来自多个表的数据的常用方法是将表与JOIN子句组合在一起。基于关系代数中的连接操作,JOIN子句通过匹配每个表中彼此相关的行来组合单独的表。通常,这种关系基于一对列(每个表中的一个),它们共享公共值,例如一个表的外键和外键引用的另一个表的主键。 本指南概述了如何构造包含JOIN子句的各种 SQL 查询。它还强调了不同类型的JOIN子句,它们如何组合来自多个表的数据,以及如何为列名设置别名以减少写入JOIN操作的乏味。 先决条件 为了遵循本指南,您需要一台运行某种类型的使用 SQL 的关系数据库管理系统 (RDBMS) 的计算机。本指南中的说明和示例已使用以下环境进行验证: 运行 Ubuntu 20.04 的服务器,具有管理权限的非 root 用户和使用 UFW 配置的防火墙,如我们的 Ubuntu 20.04 初始服务器设置指南中所述。 在服务器上安装并保护 MySQL,如如何在 Ubuntu 20.04 上安装 MySQL 中所述。本指南已使用新创建的用户进行验证,如步骤 3 中所述。 注意:请注意,许多 RDBMS 使用自己独特的 SQL 实现。尽管本教程中概述的命令适用于大多数 RDBMS,但如果您在 MySQL 以外的系统上测试它们,则确切的语法或输出可能会有所不同。 您还需要一个数据库,其中包含一些加载了示例数据的表,您可以使用这些表来练习使用JOIN操作。我们鼓励您阅读以下连接到 MySQL 和设置示例数据库部分,详细了解如何连接到 MySQL 服务器并创建本指南示例中使用的测试数据库。 连接到 MySQL 并设置示例数据库 如果您的 SQL 数据库系统在远程服务器上运行,请从本地计算机通过 SSH 连接到您的服务器: ssh ..

Read more

介绍 GraphQL是 Facebook 创建的一种查询语言,旨在基于直观灵活的语法构建客户端应用程序,以描述其数据需求和交互。GraphQL 服务是通过在这些类型上定义类型和字段来创建的,然后为每种类型的每个字段提供函数。 一旦 GraphQL 服务运行(通常在 Web 服务的 URL 上),它就可以接收 GraphQL 查询以进行验证和执行。首先检查收到的查询以确保它只引用定义的类型和字段,然后运行提供的函数以产生结果。 在本教程中,我们将使用Express实现一个 GraphQL 服务器,并使用它来学习重要的 GraphQL 功能。 一些 GraphQL 功能包括: 分层 – 查询看起来与它们返回的数据完全一样。 客户端指定的查询 – 客户端可以自由决定从服务器获取什么。 强类型 – 您可以在执行之前在语法上和在 GraphQL 类型系统内验证查询。这也有助于利用可改善开发体验的强大工具,例如 GraphiQL。 自省 – 您可以使用 GraphQL 语法本身查询类型系统。这对于将传入数据解析为强类型接口非常有用,而不必处理解析和手动将 JSON 转换为对象。 目标 传统REST调用的主要挑战之一是客户端无法请求自定义(有限或扩展)数据集。在大多数情况下,一旦客户端从服务器请求信息,它要么获取所有字段,要么不获取任何字段。 另一个困难是工作和维护多个端点。随着平台的发展,数量也会随之增加。因此,客户端经常需要从不同的端点请求数据。GraphQL API 是按照类型和字段组织的,而不是端点。您可以从单个端点访问数据的全部功能。 在构建 GraphQL 服务器时,所有数据的获取和变异只需要一个 URL。因此,客户端可以通过向服务器发送一个查询字符串来请求一组数据,描述他们想要什么。 先决条件 Node.js 安装在本地,您可以按照如何安装 Node.js 和创建本地开发环境来完成。 ..

Read more

介绍 Web 上的许多项目在其开发的某个阶段需要与 REST API 交互。Axios是一个基于$httpAngular.js v1.x 中的服务的轻量级 HTTP 客户端,类似于原生的 JavaScript Fetch API。 爱可信是基于承诺-,它给你的能力,JavaScript的的占据优势async,并await为更可读的异步代码。 您还可以拦截和取消请求,并且内置了防止跨站点请求伪造的客户端保护。 在本文中,您将看到如何使用 Axios 访问React 应用程序中流行的JSON Placeholder API 的示例。 先决条件 要阅读本文,您需要以下内容: 您的计算机上安装了Node.js版本 10.16.0。要在 macOS 或 Ubuntu 18.04 上安装它,请按照如何在 macOS 上安装 Node.js 和创建本地开发环境或如何在 Ubuntu 18.04 上安装 Node.js 的使用 PPA 安装部分中的步骤进行操作。 一个新的阵营项目设置与创建应用程序做出反应按照该如何建立一个阵营项目与创建应用程序做出反应教程。 它还有助于对 JavaScript 有基本的了解,您可以在“如何在 JavaScript 中编码”系列中找到这些知识,以及 HTML 和 CSS 的基本知识。 第 1 步 ..

Read more

作者选择Apache 软件基金会作为Write for DOnations计划的一部分接受捐赠。 介绍 当您拥有关键网站时,您会想知道它们何时遇到任何问题,以便您可以在对用户产生影响之前修复它们。接收通知的一种方法是通过基于文本的聊天系统设置警报。 Discord是一个类似于 Slack 的托管聊天系统。使用 Discord,您可以设置一个免费的消息系统,让您可以通过文本消息、图像、音频和视频进行通信。虽然它提供高级功能,但您可以免费注册,并且它有适用于 Windows、macOS、Linux、Android 和 iOS 的客户端。 在本教程中,您将配置自己的 Discord 服务器,创建一个 Discord webhook,编写一个 Bash 脚本来检查网站列表的状态,并测试从您的服务器到您的 Discord 频道的通知。 先决条件 在开始本指南之前,您需要具备以下条件: 一个 Ubuntu 18.04 服务器,它将运行您的监控脚本并与 Discord ( monitor-server )对话。您可以按照此初始服务器设置指南设置此服务器。 如果您还没有想要监控的网站,请使用如何在 Ubuntu 18.04 上安装 Apache Web 服务器来设置apache-server,并确保完成设置虚拟主机的步骤 5。 一个 Discord 帐户。您可以访问Discord 注册页面以注册一个免费的 Discord 帐户。 第 1 步 — 设置您的 Discord Webhook 打开 ..

Read more

介绍 Flutter 项目的一个很好的范例是将你的小部件分成小的、可测试的单元,这些单元可以适应它们的上下文。 Flutter 为子和父小部件之间的回调样式事件提供VoidCallback和Function(x)(其中x可以是不同的类型)。 在本文中,您将使用回调样式的事件在 Flutter 的小部件之间进行通信。 先决条件 要阅读本文,您需要: 下载并安装Flutter。 下载并安装Android Studio 或 Visual Studio Code。 建议为您的代码编辑器安装插件: Flutter和Dart为 Android Studio 安装的插件。 Flutter 为 Visual Studio Code 安装的扩展。 本文通过Flutter v1.22.2、Android SDK v30.0.2、Android Studio v4.1验证。 步骤 1 — 设置项目 为 Flutter 设置环境后,您可以运行以下命令来创建新应用程序: flutter create flutter_widget_communication 导航到新的项目目录: cd flutter_widget_communication 使用flutter create将生成一个演示应用程序,该应用程序将显示单击按钮的次数。 您将基于生成的代码来试验回调式事件。 步骤 2 — 将数据从父小部件传递到子小部件 您将创建一个父小部件 ..

Read more

介绍 Visual Studio Code具有大量内置功能,包括对调试应用程序的支持。在本文中,您将通过下载Debugger for Chrome扩展、创建调试配置、启动调试配置和设置断点来配置 VS Code 以调试 Node.js。 先决条件 要完成本教程,您需要: Node.js 安装在本地,您可以按照如何安装 Node.js 和创建本地开发环境来完成。 你的机器上安装了最新版本的Visual Studio Code。 安装在 Visual Studio Code 中的 Chrome 扩展调试器。 对于本教程,您可以将这些课程应用于可以在 Node 服务器上运行的 JavaScript 项目之一。 如果您愿意,还可以选择使用示例应用程序进行操作。 步骤 1 — 创建示例应用程序(可选) 本教程将调试一个名为Quick Chat的示例应用程序。如果您没有要遵循的项目,则可以按照此步骤创建此应用程序。 您可以使用GIT中克隆的Design-and-Build-a-Chat-Application-with-Socket.io回购。您还可以下载 zip 文件并解压缩内容。 注意:如果您需要在系统上安装 Git,请参阅Git 入门教程。 在本教程中,您将使用项目第 8 部分中的代码。花点时间熟悉一下您希望应用程序如何工作。 首先导航到项目目录,然后进入part-8目录: cd Design-and-Build-a-Chat-Application-with-Socket.io cd part-8 接下来,为项目安装 npm 包: ..

Read more