Category : 教程系列

介绍 Node.js是用于构建服务器端和网络应用程序的开源 JavaScript 运行时环境。该平台可在 Linux、macOS、FreeBSD 和 Windows 上运行。尽管您可以在命令行中运行 Node.js 应用程序,但本教程将重点介绍将它们作为服务运行。这意味着它们将在重启或失败时重新启动,并且可以安全地在生产环境中使用。 在本教程中,您将在单个 Ubuntu 20.04 服务器上设置生产就绪的 Node.js 环境。该服务器将运行由PM2管理的 Node.js 应用程序,并通过 Nginx 反向代理为用户提供对应用程序的安全访问。Nginx 服务器将使用Let’s Encrypt提供的免费证书提供 HTTPS 。 先决条件 本指南假设您具备以下条件: Ubuntu 20.04 服务器设置,如 Ubuntu 20.04 的初始服务器设置指南中所述。您应该有一个具有 sudo 权限和活动防火墙的非 root 用户。 一个域名指向你的服务器的公网IP。本教程将始终使用域名example.com。 已安装 Nginx,如如何在 Ubuntu 20.04 上安装 Nginx 中所述。 使用 Let’s Encrypt 证书配置 SSL 的 Nginx。如何在 Ubuntu 20.04 上使用 Let’s ..

Read more

介绍 React是一个前端 JavaScript 库,可用于为您的应用程序创建交互式用户界面。 在本教程中,您将创建一个待办事项应用程序。您的应用程序将需要显示任务、添加新任务、将任务标记为完成并删除任务。这些操作将涉及CRUD(创建、读取、更新和删除)应用程序的四个方面。 这种类型的项目通常是用 Class 组件来完成的,但是这个应用程序会集成React Hooks。React Hooks 允许功能组件具有状态并使用生命周期方法,从而避免使用 Class 组件并拥有更多模块化和可读性的代码。 您可以在 CodeSandbox 上查看已完成的项目。 先决条件 要完成本教程,您需要: Node.js 安装在本地,您可以按照如何安装 Node.js 和创建本地开发环境来完成。 熟悉 React 会有所帮助,但不是必需的。您可以查看我们的How To Code in React.js系列。 第 1 步 – 启动 React 应用程序 首先,您需要创建一个新应用程序。在您的终端窗口中,导航到您希望新应用程序所在的位置并键入: npx create-react-app react-to-do 注意:在 React 16.8 之前,您必须安装 React 16.7 的 alpha 版本才能使用 React Hooks。在撰写本文时,Create React App将安装支持 Hooks 的最新稳定版 ..

Read more

介绍 数字在编程中极为常见。它们用于通过分配数字代码来表示诸如屏幕尺寸、地理位置、金钱和积分、视频中传递的时间、游戏头像的位置和颜色等内容。 能够在编程中有效地执行数学运算是一项需要培养的重要技能,因为您处理数字的频率很高。虽然对数学有高层次的理解肯定可以帮助你成为一个更好的程序员,但这不是先决条件。如果您没有数学背景,请尝试将数学视为实现您想要实现的目标的工具,并作为提高逻辑思维的一种方式。 我们将使用 Python 最常用的两种数字数据类型,整数和浮点数: 整数是整数,可以是正数、负数或 0 (…, -1, 0, 1, …)。 花车是实数,它们包含小数点(如9.0或-2.25)。 本教程将介绍可与 Python 中的数字数据类型一起使用的运算符。 运营商 一个操作者是一个符号或功能指示的操作。例如,在数学中,加号或 + 是表示加法的运算符。 在 Python 中,我们会看到一些从数学中带来的熟悉的运算符,但我们将使用的其他运算符是特定于计算机编程的。 这是 Python 中与数学相关的运算符的快速参考表。我们将在本教程中介绍以下所有操作。 手术 它返回什么 x + y 的总和x与y x – y x和的区别y -X 改变了符号 x +x 身份 x x * y x和的产品y x / y x 和 y 的商 x ..

Read more

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

Read more

介绍 Storybook是一个用户界面 (UI) 库,可用于记录组件。 注意:本文基于Storybook 简介,其中介绍了如何使用它来组织和构建 JavaScript 组件。 在本文中,您将使用 React 和 Storybook 构建一个交互式 UI 组件。 在本教程结束时,您将把故事书部署为一个独立的应用程序,作为风格指南。 先决条件 要完成本教程,您需要: Node.js 安装在本地,您可以按照如何安装 Node.js 和创建本地开发环境来完成。 本教程已通过 Node v14.4.0、npmv6.14.5、reactv16.13.1 和@storybook/reactv5.3.19 验证。 步骤 1 — 设置项目 首先,我们需要创建一个新的 React 项目,为此,我们将使用create-react-app这是一个很好的工具来搭建 React 应用程序。 npx create-react-app storybook-app 然后导航到新创建的项目目录: cd storybook-app 下一步是将storybook包安装到我们的项目中: npx -p @storybook/cli sb init 该命令可以自动从package.json文件中检测我们正在使用的框架并安装该框架的 Storybook 版本。 运行这两个命令后,我们可以@storybook/react通过打开package.json文件来验证是否安装了软件包来确认我们已经安装了依赖项,然后我们可以运行应用程序以及运行 Storybook。 npm start ..

Read more

介绍 pgAdmin是 PostgreSQL 及其相关数据库管理系统的开源管理和开发平台。它用 Python 和 jQuery 编写,支持 PostgreSQL 中的所有功能。您可以使用 pgAdmin 完成从编写基本 SQL 查询到监控数据库和配置高级数据库架构的所有工作。 在本教程中,我们将介绍在 Ubuntu 18.04 服务器上安装和配置最新版本的 pgAdmin、通过 Web 浏览器访问 pgAdmin 并将其连接到服务器上的 PostgreSQL 数据库的过程。 先决条件 要完成本教程,您需要: 运行 Ubuntu 18.04 的服务器。此服务器应具有具有 sudo 权限的非 root 用户,以及配置为ufw. 如需有关设置的帮助,请遵循我们的 Ubuntu 18.04 初始服务器设置指南。 安装在您的服务器上的 Apache Web 服务器。按照我们关于如何在 Ubuntu 18.04 上安装 Apache Web 服务器的指南在您的机器上进行配置。 PostgreSQL 安装在您的服务器上。您可以按照我们关于如何在 Ubuntu 18.04 上安装和使用 PostgreSQL ..

Read more

介绍 clip-path是一个非常有趣的属性,它允许真正剪切 SVG 元素、图像或任何 HTML 元素的可见部分。 使用 clip-path 定义基本形状 clip-path可以很容易地使用polygon、ellipse、circle或inset关键字中的任何一个来裁剪基本形状,这些关键字是CSS 排除模块的一部分。 多边形 Polygon 是所有可用形状中最灵活的,因为它允许您指定任意数量的点,有点像SVG path。提供的点是成对的 X 和 Y 坐标,可以是任何单位(例如:基于像素或百分比)。因为它是最灵活的,它也是最复杂的,您可能想要使用工具来定义您的点。 让我们用一个例子来说明。首先,您将看到我们的起始图像,然后是应用剪切路径的图像以获得三角形,然后是更复杂的 X 形,最后是星形: /* Triangle */ .polygon1 { -webkit-clip-path: polygon(50% 0%, 0% 100%, 100% 100%); clip-path: polygon(50% 0%, 0% 100%, 100% 100%); } /* X */ .polygon2 { -webkit-clip-path: polygon(20% 0%, 0% 20%, 30% 50%, 0% ..

Read more

介绍 JavaScript 中的函数式编程有利于代码的可读性、可维护性和可测试性。函数式编程思维中的一种工具是以数组处理风格进行编程。这需要将数组作为您的基本数据结构。然后,你的程序就变成了对数组元素的一系列操作。 这在很多情况下都很有用,例如使用将 AJAX 结果映射到 React 组件map,使用 删除无关数据filter,以及使用reduce。这些称为“Array Extras”的函数是对for循环的抽象。使用这些功能,您for无所不能,反之亦然。 在本教程中,您将通过在考虑看看开发的JavaScript函数式编程更深入的了解filter,map和reduce。 先决条件 要完成本教程,您将需要以下内容: 对 JavaScript 的有效理解。您可以查看如何在 JavaScript 中编码系列以获取更多信息。 了解如何for在 JavaScript 中构建和实现循环。该文章for在JavaScript中环路是一个伟大的地方开始。 Node.js 安装在本地,您可以按照如何安装 Node.js 并创建本地开发环境来完成。 步骤 1 — 迭代 forEach for循环用于遍历数组中的每一项。通常,沿途对每个项目都做一些事情。 一个例子是将数组中的每个字符串大写。 const strings = [‘arielle’, ‘are’, ‘you’, ‘there’]; const capitalizedStrings = []; for (let i = 0; i < strings.length; i += 1) { ..

Read more

介绍 替换字符串中的文本是 JavaScript 中的一项常见任务。在本文中,您将了解使用replace正则表达式替换文本。 注意:请 访问此配套教程,详细了解如何使用grep正则表达式在 Linux 中搜索文本模式。 先决条件 熟悉 Javascript 编程语言。访问我们的教程系列,如何在 Javascript 中编码,了解基础知识。 替换单个实例 通常 JavaScript 的String replace()函数只替换它在字符串中找到的第一个实例: 应用程序.js const myMessage = ‘this is the sentence to end all sentences’; const newMessage = myMessage.replace(‘sentence’, ‘message’); console.log(newMessage); // this is the message to end all sentences 在此示例中,仅sentence替换了第一个实例。 替换多个实例 如果您希望 JavaScript 替换所有实例,则必须使用使用/g运算符的正则表达式: 应用程序.js const myMessage = ..

Read more

作为Write for DOnations计划的一部分,作者选择了免费和开源基金来接受捐赠。 介绍 在这个由两部分组成的教程中,您将学习如何使用systemd. 第一部分涵盖了一般的 Linux 服务管理概念,如init守护进程和运行级别。它以 .NET 中的服务管理演示结束systemd。在这里,您将检查targets,wants,requires,和unit文件。 第二部分提供了用于完成实用和常见systemd任务的分步教程。具体来说,您将配置 MySQL 数据库服务器以在崩溃或重新启动后自动启动。 注意:您也可以考虑阅读我们非常流行的使用systemctl来控制 systemd 服务和单元的教程。 先决条件 要完成本教程,您需要: 运行 CentOS 8 的服务器,包括具有 sudo 权限的非 root 用户。要设置所有这些,包括防火墙,您可以创建一个运行 CentOS 8 的 DigitalOcean Droplet,然后按照我们的初始服务器设置指南进行操作。 介绍服务管理守护进程 Linux 服务可以在很大程度上通过改变服务管理守护进程(也称为守护进程)处理它们的方式来实现自我修复init。 init是在机器启动并且内核加载到内存后在 Linux 系统中启动的第一个进程。其中,它决定用户进程或系统服务应如何加载、以何种顺序加载以及是否应自动启动。 随着 Linux 的发展,init守护进程的行为也在发展。最初,Linux 从 System V 开始,与initUnix 中使用的相同。从那以后,Linux 实现了 Upstartinit守护进程(由 Ubuntu 创建),现在是 systemdinit守护进程(首先由 Fedora 实现)。 大多数现代 Linux 发行版已逐渐从 ..

Read more