介绍 替换字符串中的文本是 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 = ..
Category : 教程系列
作为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 发行版已逐渐从 ..
介绍 在设置远程 Linux 服务器时,您需要决定一种安全连接到它的方法。虽然密码是验证用户身份的一种方式,但密码有多个漏洞,可以通过蛮力攻击破解。小号ecure嘘ELL键-更好地称为SSH密钥-经常被用来代替密码,因为它们提供连接到远程Linux服务器的更安全的方法。作为 Secure Shell 加密网络协议的一部分,SSH 密钥还使用户能够通过不安全的网络安全地执行网络服务,例如向远程服务器提供基于文本的命令或配置其服务。 本教程将指导您完成使用 OpenSSH(一套开源 SSH 工具)在 macOS 和 Linux 以及 Windows 上通过使用适用于 Linux 的 Windows 子系统创建 SSH 密钥的步骤。它是为刚开始使用命令行的读者编写的,将提供有关在个人计算机上访问终端的指导。完成本教程后,您将拥有 SSH 密钥,可用于在教程如何在 DigitalOcean Droplet 上设置 Ubuntu 20.04服务器中安全设置服务器,该教程是云课程简介的一部分。 如果您已经熟悉命令行并正在寻找有关使用 SSH 连接到远程服务器的说明,请参阅我们关于为一系列 Linux 操作系统设置 SSH 密钥的教程集。 先决条件 要完成本教程,您需要: 运行以下操作系统之一的本地计算机:macOS、Linux 或安装了适用于 Linux 的 Windows 子系统的 Windows。如果您使用的是 Windows,您可以在Microsoft 的文档页面上找到下载或更新适用于 Linux 的 Windows 子系统的说明。请注意,虽然 OpenSSH 应该适用于一系列 ..
作为Write for DOnations计划的一部分,作者选择了免费和开源基金来接受捐赠。 介绍 甲Linux的容器是一组从该系统的其余部分分离的处理。对于最终用户来说,Linux 容器就像一个虚拟机,但它要轻得多。您没有运行额外 Linux 内核的开销,并且容器不需要任何 CPU 硬件虚拟化支持。这意味着您可以在同一台服务器上创建比虚拟机更多的容器。 想象一下,您有一台服务器,应该为您的客户运行多个网站。一方面,每个网站都可以是同一 Apache 或 Nginx 网络服务器实例的虚拟主机/服务器块。另一方面,在使用虚拟机时,您将为每个网站创建一个单独的嵌套虚拟机。Linux 容器位于虚拟主机和虚拟机之间。 LXD允许您创建和管理这些容器。LXD 提供管理程序服务来管理容器的整个生命周期。在本教程中,您将配置 LXD 并使用它在容器中运行Nginx。然后,您会将来自 Internet 的流量路由到容器,以使示例网页可访问。 先决条件 要完成本教程,您需要具备以下条件: 运行 Ubuntu 20.04的服务器。要设置服务器,包括非 root sudo 用户和防火墙,您可以创建一个运行 Ubuntu 20.04 的 DigitalOcean Droplet,然后按照我们的初始服务器设置指南进行操作。记下您服务器的公共 IP 地址。我们稍后将其称为your_server_ip. 至少 5GB 的块存储。要进行设置,您可以遵循DigitalOcean 的块存储卷快速入门。在 Block Storage 的配置中,选择Manually Format & Mount以允许 LXD 根据需要进行准备。您将使用它来存储与容器相关的所有数据。 注意:从 Ubuntu 20.04 开始,LXD 正式作为 snap ..
有时你只需要拆开字符串: var sentence = “Oh a cookie!” sentence.split(” “); // [ “Oh”, “a”, “cookie!” ] 句法 诀窍是使用正确的分隔符: myArray.split(separator); 常见用例 如果将分隔符留空,它将剖析每个字符。 var pieces = sentence.split(“”); // [ “O”, “h”, ” “, “a”, ” “, “c”, “o”, “o”, “k”, “i”, “e”, “!” ] 请注意,空格保留在结果数组中,因为它们没有用作分隔符。 学到更多 split()只是帮助开发人员处理字符串的几种方法之一,要了解更多信息,请参阅如何在 JavaScript 中索引、拆分和操�..
介绍 本文将研究如何在 Express 项目中处理路由和 HTTP 请求方法。路由处理用户导航到整个应用程序中的各种 URL。HTTP 是Hyper Text Transfer Protocol 的缩写,用于将数据从 Express 服务器传输到 Web 浏览器并提供便利。 您将学习如何定义路线和使用HTTP请求方法GET,POST,PUT和DELETE操纵数据。 先决条件 要完成本教程,了解 Node.js 会有所帮助,但不是必需的。如果您想了解有关 Node.js 的更多信息,请查看如何在 Node.js 中编码系列。 设置您的项目 由于 Express 是一个 Node.js 框架,因此在执行后续步骤之前,请确保您已从 Node.js 安装了Node.js。在终端中运行以下命令: 创建一个以node-express-routing您的项目命名的新目录: mkdir node-express-routing 切换到新目录: cd node-express-routing 使用默认值初始化一个新的 Node 项目。这将包含package.json用于访问依赖项的文件: npm init -y 创建您的入口文件,index.js. 您将在此处处理路由和 HTTP 请求方法: touch index.js 安装 Express 和nodemon作为依赖项。每当文件更改时,您将使用nodemon来不断地重新启动 Express ..
在我们的Django 入门教程中,我向您展示了如何启动和运行 Django 站点。不过,我们渲染的模板非常基础。 这绝对不是您希望网站的样子。 你如何让你的网站看起来更好?简单的!添加一些样式。在本教程中,我将向您展示如何向 Django 模板添加一些 CSS 和 JavaScript,以使它们看起来更好。为此,您首先需要了解 Django 中静态文件的概念。 设置 Django 项目 让我们设置我们的测试 Django 项目。首先,创建一个名为的文件夹projects,这是我们的应用程序所在的位置。 mkdir projects && cd projects 在里面projects,让virtualenv我们用来为我们的应用程序的依赖项创建一个环境。 virtualenv env –python python3 注意:如果您还没有virtualenv安装,请使用命令安装它pip install virtualenv。 完成后,通过运行 activate shell 脚本来激活环境。 source env/bin/activate 如果该命令有效,您应该会(env)在终端上看到一个提示。 #(env)~/projects $ 一切看起来都很好?惊人的!现在让我们使用pip安装Django到我们的环境中。 #(env)~/projects $ pip install django 该命令应该将 Django 安装到您的环境中。在撰写本文时,Django 版本是1.10.4. 然后我们将调用django-admin脚本来创建我们的 Django 应用程序。让我们这样做: #(env)~/projects ..
介绍 快照测试允许您确保您的输出继续按预期运行。这很有用,因为随着您重新访问代码以随着时间的推移进行更新,这些更改可能会导致某些内容中断的可能性增加。 与严格的测试驱动开发 (TDD) 不同,TDD 的标准做法是先编写失败的测试,然后编写代码以使测试通过,快照测试采用不同的方法。 在为 React 组件编写快照测试时,首先需要让代码处于工作状态。然后,在给定某些数据的情况下生成其预期输出的快照。快照测试与组件一起提交。Jest 是一个测试框架,会将快照与测试的渲染输出进行比较。 如果测试失败,则可能意味着两件事。如果测试结果出乎意料,您可能需要解决组件的问题。如果测试结果符合预期,则可能意味着需要更新快照测试以支持新的输出。 在本教程中,您将探索快照测试以及如何使用它们来确保您的用户界面 (UI) 不会意外更改。 先决条件 要完成本教程,您需要: Node.js 安装在本地,您可以按照如何安装 Node.js 和创建本地开发环境来完成。 熟悉React和Jest可能会有所帮助,但不是必需的。 本教程还使用Visual Studio Code作为代码编辑器,以方便运行集成终端。但是,您可以将其替换为您选择的编辑器和终端。 本教程已通过 Node v14.7.0、npmv6.14.7、reactv16.13.1 和jestv24.9.0 验证。 第 1 步——创建一个 React 组件进行测试 首先,为了进行测试,您需要使用Create React App创建一个React App。在本教程中,该项目将被称为react-snapshot-tests。 打开终端并运行以下命令: npx [email protected] react-snapshot-tests 然后,切换到新创建的应用程序目录: cd react-snapshot-tests 接下来,启动应用程序: npm start 此时,您现在应该运行了一个 React 应用程序,并且可以在 Web 浏览器中查看它。接下来,您需要创建一个可以测试的组件。 就本教程而言,您将要创建的组件会渲染items它接收到的道具。 在您的终端中,在以下components目录下创建一个子目录src: ..
该系列的一部分: 如何对 MySQL 中的问题进行故障排除 本指南旨在作为诊断 MySQL 设置时的故障排除资源和起点。我们将讨论许多 MySQL 用户遇到的一些问题,并提供对特定问题进行故障排除的指导。我们还将包含指向 DigitalOcean 教程和官方 MySQL 文档的链接,这些链接可能在某些情况下有用。 许多网站和应用程序的 Web 服务器和数据库后端都托管在同一台机器上。但是,随着时间的推移,这样的设置会变得繁琐且难以扩展。一个常见的解决方案是通过设置远程数据库将这些功能分开,允许服务器和数据库在自己的机器上按自己的节奏增长。 用户在尝试设置远程 MySQL 数据库时遇到的更常见问题之一是他们的 MySQL 实例仅配置为侦听本地连接。这是 MySQL 的默认设置,但它不适用于远程数据库设置,因为 MySQL 必须能够侦听可以访问服务器的外部IP 地址。要启用此功能,请打开您的mysqld.cnf文件: sudo nano /etc/mysql/mysql.conf.d/mysqld.cnf 导航到以bind-address指令开头的行。它看起来像这样: /etc/mysql/mysql.conf.d/mysqld.cnf . . . lc-messages-dir = /usr/share/mysql skip-external-locking # # Instead of skip-networking the default is now to listen only on # localhost which is ..
介绍 在本文中,您将研究如何在您的 React 项目中实现Context API和 React Hook useContext()。Context API 是一种 React 结构,允许您共享来自应用程序各个级别的特定数据,并有助于解决螺旋钻。 React Hooks 是一种函数,可作为用函数式组件编写的状态和生命周期方法的模块化替代品。该useContext()方法是通过组件树进行 prop-drilling 的替代方法,并创建一个内部全局状态来传递数据。 先决条件 需要了解 React。要了解有关 React 的更多信息,请查看如何在 React系列中编码。 建议具备 React Hooks 的一般知识,但不是必需的。要了解有关 React Hooks 的更多信息,请查看教程如何在 React 项目中应用 React Hooks。 检查上下文 API 为了检查 Context API,让我们了解如何在 React 应用程序中访问上下文。React 提供了createContext()帮助将数据作为 prop 传递的方法。 在您的ColorContext.js文件中,设置一个colors对象并将一个属性作为参数传递给该createContext()方法: 颜色上下文.js const colors = { blue: “#03619c”, yellow: “#8c8f03”, red: ..