Category : 教程系列

介绍 在本文中,您将了解最新升级 ES2020 中推出的新 JavaScript 功能。Nullish Coalescing 和 Optional Chain Operators 等功能有助于定义您的 JavaScript 语法,而 Dynamic Import 使您的代码保持模块化。 私有类变量 类包含可用于可重用模块的属性。如果您在各种文件中重用这些属性,您可能不希望所有内容都全局可用。 为了解决这个问题,私有类变量保留了在类中使用的属性和方法。属性和方法前面的哈希符号表示私有类变量。 class Message { #message = “Howdy”; greet() { console.log(this.#message); }; }; const greeting = new Message() greeting.greet() // Howdy console.log(greeting.#message) // #message is not defined 请注意,调用greet类外的方法会返回一个值。console.log将属性设为私有的A 会返回错误。 Promise.allSettled() 当您使用多个 Promise 时,尤其是当它们相互依赖时,记录每个进程以调试错误可能会很有用。 使用Promise.allSettled(),您可以创建一个新的 Promise,当作为参数传入的 Promise 已解析时返回: ..

Read more

介绍 在某些结构化查询语言(SQL)语句中,WHERE子句可用于限制给定操作将影响的行。他们通过定义每行必须满足才能受到影响的特定条件(称为搜索条件)来实现这一点。搜索条件由一个或多个谓词组成,这些谓词是计算结果为“真”、“假”或“未知”的特殊表达式,并且操作仅影响WHERE子句中每个谓词计算结果为“真”的那些行。 ” SQL 允许用户编写包含各种不同类型谓词的搜索条件,每个谓词都使用特定的运算符来评估行。本指南将概述两种类型的谓词及其使用的运算符:比较运算符和IS NULL运算符。 尽管本指南将专门在其示例中使用SELECT语句,但此处解释的概念可用于许多 SQL 操作。特别是,WHERE条款和他们的搜索条件的重要组成部分UPDATE和DELETE操作。 先决条件 为了遵循本指南,您需要一台运行某种类型的使用 SQL 的关系数据库管理系统 (RDBMS) 的计算机。本指南中的说明和示例已使用以下环境进行验证: 运行 Ubuntu 20.04 的服务器,具有管理权限的非 root 用户和使用 UFW 配置的防火墙,如我们的 Ubuntu 20.04 初始服务器设置指南中所述。 在服务器上安装并保护 MySQL,如如何在 Ubuntu 20.04 上安装 MySQL 中所述。本指南已使用新创建的用户进行验证,如步骤 3 中所述。 您还需要一个数据库,其中包含一些加载了示例数据的表,您可以使用这些表来练习使用比较和IS NULL运算符。我们鼓励您阅读以下连接到 MySQL 和设置示例数据库部分,详细了解如何连接到 MySQL 服务器并创建本指南示例中使用的测试数据库。 注意:请注意,许多 RDBMS 使用自己独特的 SQL 实现。尽管本教程中概述的命令适用于大多数 RDBMS,包括 PostgreSQL 和 SQLite,但如果您在 MySQL 以外的系统上测试它们,则确切的语法或输出可能会有所不同。 连接到 MySQL 并设置示例数据库 ..

Read more

介绍 许多软件都需要 Java 和 JVM(Java 的虚拟机),包括Tomcat、Jetty、Glassfish、Cassandra和Jenkins。 在本指南中,您将使用apt. 您将安装 OpenJDK 以及 Oracle 的官方 JDK。然后,您将选择要用于项目的版本。完成后,您将能够使用 JDK 开发软件或使用 Java Runtime 运行软件。 先决条件 要学习本教程,您需要: 按照 Ubuntu 20.04 初始服务器设置指南教程设置了一台 Ubuntu 20.04 服务器,包括 sudo 非 root 用户和防火墙。 安装默认的 JRE/JDK 安装 Java 的最简单选择是使用 Ubuntu 打包的版本。默认情况下,Ubuntu 20.04 包含 Open JDK 11,它是 JRE 和 JDK 的开源变体。 要安装这个版本,首先更新包索引: sudo apt update 接下来,检查是否已经安装了 Java: java -version ..

Read more

JavaScript(也称为“javascript”或 JS)是一种高级、基于原型的动态脚本语言,用于创建交互式网页和应用程序。 其灵活性和前端和后端功能使 JavaScript 成为一种流行的编程语言。JavaScript 的一些有用功能包括将值存储在变量中、对字符串执行操作以及触发或处理发生在DOM中的事件。 要了解有关 JavaScript 的更多信息,请访问本教程系列“如何在 JavaScript 中编码”。 可以在我们的JavaScript 页面上找到完整的资�..

Read more

介绍 Chart.js是一种使用 HTML5<canvas>元素创建干净图表的强大方法。使用 Vue 的data()对象,可以存储数据并在需要时对其进行操作以更改图形。 在本文中,您将在示例 Vue 项目中使用 Chart.js 来显示有关太阳系中行星的信息。 先决条件 要完成本教程,您需要: Node.js 安装在本地,您可以按照如何安装 Node.js 和创建本地开发环境来完成。 熟悉设置 Vue.js 项目和使用 Vue.js 组件可能会有所帮助。 本教程已通过 Node v15.11.0、npmv7.6.1、vuev2.6.11 和 Chart.js v2.9.4 验证。 步骤 1 — 设置项目 为了快速设置项目,本文将推荐使用@vue/cli. 注意:本文将采取使用的方式npx来避免全局安装@vue/cli; npx @vue/cli create vue-chartjs-example –default 导航到新创建的项目目录; cd vue-async-computed-example Chart.js 可以通过npm以下命令安装: npm install [email protected] 此时,您将拥有一个支持 Chart.js 的新 Vue 项目。 第 2 步 ..

Read more

介绍 在本教程中,我们将研究著名的提升机制在 JavaScript 中是如何发生的。在我们深入研究之前,让我们先了解一下什么是提升。 提升是一种 JavaScript 机制,其中变量和函数声明在代码执行之前移动到其作用域的顶部。 不可避免地,这意味着无论函数和变量在哪里声明,无论它们的作用域是全局的还是局部的,它们都会被移动到其作用域的顶部。 然而,值得注意的是,提升机制只会移动声明。任务留在原地。 如果您曾经想知道为什么可以在将函数写入代码之前调用它们,那么请继续阅读! 未定义 vs ReferenceError 在我们认真开始之前,让我们先讨论几件事情。 console.log(typeof variable); // Output: undefined 这使我们想到了第一个注意点: 在 JavaScript 中,未声明的变量在执行时被赋值为 undefined 并且也是 undefined 类型。 我们的第二点是: console.log(variable); // Output: ReferenceError: variable is not defined 在 JavaScript 中,尝试访问以前未声明的变量时会引发 ReferenceError。 由于提升,JavaScript 在处理变量时的行为变得微妙。我们将在后续章节中深入探讨这一点。 提升变量 以下是 JavaScript 生命周期,并指示变量声明和初始化发生的顺序。 然而,由于 JavaScript 允许我们同时声明和初始化我们的变量,这是最常用的模式: var a = 100; 然而重要的是要记住,在后台,JavaScript 虔诚地声明然后初始化我们的变量。 ..

Read more

介绍 如果您已经在本地环境中构建了一个静态网站,下一步是决定如何将其发布到网络上。发布站点的一种方法是通过 DigitalOcean App Platform将其部署为应用程序,这允许开发人员直接将代码发布到 DigitalOcean 服务器,而无需担心底层基础架构。App Platform为您的前三个静态站点提供免费托管。 在本教程中,您将使用来自 GitHub 存储库的 App Platform 部署静态网站。接下来,您应该将您的网站文件托管在您拥有的 GitHub 存储库中。如果您需要在 GitHub 存储库中托管文件和创建 GitHub 帐户的说明,请访问我们更深入的教程如何使用 DigitalOcean App Platform 将静态网站部署到云。在本教程结束时,您应该拥有一个已发布的网站,并了解如何使用 App Platform 从 GitHub 存储库将网站部署到云端。 先决条件 一个 GitHub 帐户。 您拥有的 GitHub 存储库中静态网站的文件。您也可以克隆我们的示例静态网站存储库以进行测试。 用于注册 DigitalOcean 云服务的信用卡或 Paypal 帐户。您无需为前三个站点付费。 步骤 1 — 创建您的 DigitalOcean 帐户 要创建 DigitalOcean 帐户,请访问注册页面并从以下选项中进行选择: 输入电子邮件地址和密码 使用 Google 单点登录 使用 ..

Read more

作为Write for DOnations计划的一部分,作者选择了免费和开源基金来接受捐赠。 介绍 就其本身而言,Kubernetes不提供持续集成和部署功能。虽然这些概念在较小的项目中通常并不普遍,但托管和更新部署的大型团队发现设置此类流程要容易得多,以减少手动耗时的任务,而是专注于开发正在部署的软件。维护 Kubernetes 持续交付的一种方法是GitOps。 GitOps将托管应用程序的 Git 存储库和 Kubernetes 清单视为有关部署的中心事实来源。它允许通过使用存储库分支来实现分离的部署环境,使您能够在任何集群上快速重现当前或过去的任何配置状态,并且由于 Git 版本控制使回滚变得微不足道。清单始终安全、同步且易于访问。可以根据外部因素(通常是持续集成系统)审核、允许或拒绝对清单或应用程序的修改。自动化从推送代码到将其部署在集群上的过程可以大大提高生产力并增强开发人员体验,同时使部署始终与中央代码库保持一致。 Flux是一种开源工具,可促进 Kubernetes 的 GitOps 持续交付方法。Flux 允许通过监控配置的 Git 存储库并在更改可用时自动应用更改来自动将应用程序和配置部署到您的集群。它可以应用Kustomize清单(它提供了一种简单的方法来选择性地动态修补常用 Kubernetes 清单的部分),以及监视 Helm 图表发布。您还可以将其配置为通过 Slack、Discord、Microsoft Teams 或任何其他支持 Webhook 的服务来接收通知。Webhooks 提供了一种通知应用程序或服务发生在其他地方的事件并提供其描述的方法。 在本教程中,您将安装 Flux 并使用它为podinfo应用程序设置持续交付到您的 DigitalOcean Kubernetes 集群。podinfo是一个应用程序,提供有关其运行环境的详细信息。您将podinfo在GitHub帐户上托管包含Flux 配置的存储库。您将设置 Flux 来监视应用程序存储库,自动应用更改,并使用 webhook 在 Slack 上通知您。最后,您对受监控存储库所做的所有更改都将迅速传播到您的集群。 先决条件 要完成本教程,您需要: 一个 DigitalOcean Kubernetes 集群,您的连接配置被配置为kubectl默认值。创建集群时,有关如何配置的说明kubectl显示在“连接到集群”步骤下。要了解如何在 DigitalOcean 上创建 Kubernetes 集群,请参阅Kubernetes ..

Read more

本教程的先前版本由Justin Ellingwood编写 介绍 想要在连接到不受信任的网络(例如酒店或咖啡店的 WiFi)时通过智能手机或笔记本电脑安全可靠地访问 Internet?一个虚拟专用网络(VPN)允许,如果你是在专用网络上你私下和安全地穿越不受信任的网络。流量从 VPN 服务器出现并继续前往目的地。 与HTTPS 连接结合使用时,此设置可让您确保无线登录和交易的安全。您可以绕过地域限制和审查,并从不受信任的网络中屏蔽您的位置和任何未加密的 HTTP 流量。 OpenVPN是一种功能齐全的开源安全套接字层 (SSL) VPN 解决方案,可适应多种配置。在本教程中,您将在 Debian 10 服务器上设置 OpenVPN 服务器,然后配置从 Windows、macOS、iOS 和/或 Android 对其的访问。本教程将使每个设置的安装和配置步骤尽可能简单。 注意:如果您打算在 DigitalOcean Droplet 上设置 OpenVPN 服务器,请注意,与许多托管服务提供商一样,我们会对超额带宽收费。因此,请注意您的服务器处理的流量。 有关更多信息,请参阅此页面。 先决条件 要完成本教程,您需要访问 Debian 10 服务器来托管您的 OpenVPN 服务。在开始本指南之前,您需要为非root用户配置sudo特权。您可以按照我们的Debian 10 初始服务器设置指南来设置具有适当权限的用户。链接的教程还将设置防火墙,本指南中假定该防火墙已就位。 此外,您将需要一台单独的机器作为您的证书颁发机构 (CA)。虽然技术上可以使用您的 OpenVPN 服务器或您的本地机器作为您的 CA,但我们不建议这样做,因为它会使您的 VPN 面临一些安全漏洞。根据官方 OpenVPN 文档,您应该将 CA 放在专门用于导入和签署证书请求的独立机器上。出于这个原因,本指南假设您的 CA 位于单独的 Debian ..

Read more

作者选择开放互联网/言论自由基金接受捐赠,作为Write for DOnations计划的一部分。 介绍 Nginx 的 map 模块允许您在 Nginx 的配置文件中创建变量,其值是有条件的——也就是说,它们依赖于其他变量的值。在本指南中,我们将了解如何使用 Nginx 的地图模块来实现两个示例:设置从旧网站 URL 到新网站的重定向列表,以及创建国家/地区许可名单以控制您网站的流量。 先决条件 要学习本教程,您需要: 一台 Ubuntu 20.04 服务器,具有 sudo 权限的普通非 root 用户。您可以按照此初始服务器设置教程学习如何准备您的服务器。 按照如何在 Ubuntu 20.04 上安装 Nginx 教程,在您的服务器上安装 Nginx。 步骤 1 — 创建和测试示例网页 首先,我们将创建一个代表新发布网站的测试文件。我们将使用此文件来测试我们的配置。 让我们index.html在默认的 Nginx 网站目录中创建一个简单的页面。该文件将仅包含描述内容的纯文本:主页: sudo sh -c ‘echo “Home” > /var/www/html/index.html’ 有了这个测试文件,我们将检查它是否正确地使用curl. 我们不需要index.html为此命令指定,因为如果没有提供确切的文件名,则默认情况下会提供该文件: curl http://localhost/ 作为回应,您应该看到一个单词Home,如下所示: OutputHome 现在让我们尝试访问 中不存在的文件/var/www/html/,例如old.html: curl ..

Read more