Category : 教程系列

介绍 许多 Web 应用程序和 API 使用一种身份验证形式来保护资源并将其访问权限限制为仅允许经过验证的用户。 JSON Web Token (JWT) 是一种开放标准,它定义了一种紧凑且自包含的方式,用于在各方之间作为 JSON 对象安全传输信息。 本指南将引导您了解如何使用 JWT 和Passport(Node的身份验证中间件)为API 实现身份验证。 以下是您将要构建的应用程序的简要概述: 用户注册,并创建用户帐户。 用户登录后,会为用户分配一个 JSON Web 令牌。 此令牌由用户在尝试访问某些安全路由时发送。 一旦令牌被验证,用户就可以访问该路由。 先决条件 要完成本教程,您需要: Node.js 安装在本地,您可以按照如何安装 Node.js 和创建本地开发环境来完成。 MongoDB在本地安装并运行,您可以按照官方文档进行操作。 测试 API 端点需要下载并安装Postman 之类的工具。 本教程已通过 Node v14.2.0、npmv6.14.5 和mongodb-communityv4.2.6 验证。 步骤 1 — 设置项目 让我们从设置项目开始。在终端窗口中,为项目创建一个目录: mkdir jwt-and-passport-auth 并导航到该新目录: cd jwt-and-passport-auth 接下来,初始化一个新的package.json: npm init -y ..

Read more

PostgreSQL,通常称为“Postgres”,是一种开源关系数据库管理系统。与其他关系数据库一样,PostgreSQL 将数据存储在由行和列组成的表中。用户可以使用结构化查询语言(通常称为SQL)来定义、操作、控制和查询数据。PostgreSQL 将自己标榜为“世界上最先进的开源关系数据库”,并强调可扩展性和对 SQL 标准的遵从性。 更多与 PostgreSQL 相关的教育资源,请访问: 如何安装和使用 PostgreSQL 了解关系数据库 PostgreSQL 查询简介 可以在我们的PostgreSQL 标签页上找到我们关于 PostgreSQL 的教育资源的完�..

Read more

该系列的一部分: JavaScript 设计模式 每个开发人员都努力编写可维护、可读和可重用的代码。随着应用程序变得更大,代码结构变得更加重要。设计模式证明对于解决这一挑战至关重要 – 在特定情况下为常见问题提供组织结构。 下面的设计模式只是可以帮助您升级为 JavaScript 开发人员的许多有用模式之一。有关完整集,请参阅JavaScript 设计模式。 任何 JavaScript 开发人员都见过关键字原型,被原型继承弄糊涂了,或者在他们的代码中实现了原型。原型设计模式依赖于JavaScript 原型继承。原型模型主要用于在性能密集的情况下创建对象。 创建的对象是传递的原始对象的克隆(浅层克隆)。原型模式的一个用例是执行广泛的数据库操作以创建用于应用程序其他部分的对象。如果另一个进程需要使用这个对象,而不是必须执行这个实质性的数据库操作,克隆以前创建的对象将是有利的。 维基百科上的原型设计模式 此 UML 描述了如何使用原型接口来克隆具体实现。 要克隆一个对象,必须存在一个构造函数来实例化第一个对象。接下来,通过使用关键字原型变量和方法绑定到对象的结构。让我们看一个基本的例子: var TeslaModelS = function() { this.numWheels = 4; this.manufacturer = ‘Tesla’; this.make = ‘Model S’; } TeslaModelS.prototype.go = function() { // Rotate wheels } TeslaModelS.prototype.stop = function() { // Apply brake pads } 构造函数允许创建单个 TeslaModelS ..

Read more

该系列的一部分: 如何使用 CSS 构建网站 本教程是使用 CSS创建和自定义此网站的系列的一部分,CSS 是一种用于控制网站呈现的样式表语言。您可以按照整个系列重新创建演示网站并熟悉 CSS 或将此处描述的方法用于其他 CSS 网站项目。 在继续之前,我们建议您了解一些 HTML 知识,HTML 是用于在 Web 浏览器中显示文档的标准标记语言。如果您不熟悉 HTML,可以在开始本系列之前先阅读我们如何使用 HTML 构建网站系列的前十个教程。 介绍 在本教程中,您将设置使用 HTML 和 CSS 构建网站所需的文件夹和文件。您还将准备一个index.html文件,以便它准备好接收前面教程中的 HTML 内容。 先决条件 如果您一直在学习本教程系列,则可以继续使用您在本系列前面创建的css-practice项目目录、index.html文件、images文件夹、css文件夹和styles.css文件。如果您还没有遵循本教程系列,并且需要设置这些文件夹和文件的说明,请参阅本系列中的早期教程如何设置您的 CSS 和 HTML 实践项目。 注意:如果您决定为文件夹或文件创建自己的名称,请确保避免使用字符空格、特殊字符(例如 !、#、% 或其他)和大写字母,因为这些可能会导致以后出现问题。另请注意,您将需要在本系列教程剩余部分的某些步骤中修改文件路径,以确保它们与您的文件名相符。 您应该有一个名为的项目文件夹css-practice,其中包含在本教程系列中探索 CSS 所需的以下文件夹和文件: css包含文件的命名文件夹styles.css 一个名为的空文件夹 images 一个名为 index.html 在本教程的第一步中,您将准备index.html文件,以便它准备好接收前面教程中的内容。 如何为index.htmlHTML 内容准备文件 为了准备好您的index.html文件以用作您网站的主页,我们需要添加几行重要的 HTML。这些 HTML 行将作为浏览器的指令,不会显示在网页本身上。确保您的index.html文件为空(如果您有之前教程中的内容)并将以下代码片段添加到文档中: 索引.html <!DOCTYPE html> ..

Read more

作者选择Apache 软件基金会作为Write for DOnations计划的一部分接受捐赠。 介绍 Electron是一个开源框架,用于使用 JavaScript、HTML 和 CSS 等 Web 技术创建本机应用程序。它结合了对在 Mac、Windows 和 Linux 上跨平台构建和运行应用程序的支持。许多流行的桌面应用程序都是使用 Electron 构建的,例如 Visual Studio Code、WhatsApp、Twitch、Slack 和 Figma。 Electron 有助于设计更复杂的应用程序功能,例如自动更新或本机菜单,这意味着开发人员可以专注于应用程序的核心设计。此外,Electron 是一个由 GitHub 维护的开源项目,拥有活跃的贡献者社区。 在本教程中,您将首先设置一个项目并安装 Electron。之后,您将创建您的第一个“Hello World!” 使用 Electron 的应用程序并对其进行自定义。您将实现优雅的窗口设置并为应用程序创建新窗口。完成所有这些步骤后,您将在 macOS 上拥有一个 Electron 跨平台桌面应用程序。 先决条件 要完成本教程,您需要: Node.js 安装在您的机器上和 macOS 上的本地开发环境。按照如何在 macOS 上安装 Node.js 和创建本地开发环境教程进行操作。 注意:本教程在 macOS 10.15.3 上进行了测试。 步骤 1 — ..

Read more

HTML 元素是 HTML 文档的一个组件,它告诉 Web 浏览器如何构建和解释 HTML 文档的一部分。HTML 元素可以包含格式说明、语义和内容。 例如,HTML 元素用于表示文档部分(例如页眉、段落和页脚)以及嵌入内容(例如超链接、文本和图像)。尽管 HTML 可用于提供格式说明,但 HTML 标准强烈鼓励使用CSS来代替。 HTML 元素通常——但并非总是——通过打开和关闭HTML 标签创建,这些标签环绕一段内容。下面是标记 HTML 元素的每个部分的插图: 有关 HTML 元素的更多教育资源,请访问: 如何使用和理解 HTML 元素 如何使用 HTML 教程系列构建网站 如何使用 HTML 构建网站:DigitalOcean Workshop Kit 如何使用 HTML 电子书建立网站 我们的HTML页面上提供了与 HTML 相关的教育资源的完�..

Read more

介绍 您可能已经注意到,在许多网站上,您现在可以在深色和浅色主题之间切换。这通常是使用 CSS 自定义属性(又名CSS 变量)来完成的。在本教程中,您将看到如何仅使用 CSS 和一点 JavaScript 来实现类似的功能。要了解有关此代码如何工作的更多信息,请查看我们关于 Javascript或HTML 的系列内容。 第 1 步 – 创建 CSS 变量 CSS 中自定义属性的力量在这里真正发挥作用,因为与使用 CSS 预处理器定义的变量不同,这些值是动态的;它们的值可以在任何时间点更改或覆盖以响应用户输入。当变量的值被更改或覆盖时,所有使用该变量的元素都会自动反映该更改。 首先,您必须做一些工作并提取要在 CSS 自定义属性中使用的所有颜色。假设您从以下样式开始: 样式文件 body { background: white; color: #555; } a, a:link { color: #639A67; } a:hover { color: #205D67; } 然后,您将定义自定义属性,如下所示: 样式文件 :root { –bg: white; –text-color: #555; –link-color: #639A67; –link-hover: ..

Read more

该系列的一部分: 如何编写 Ansible Playbooks Ansible 是一种现代配置管理工具,不需要在远程节点上使用代理软件,仅使用 SSH 和 Python 在托管服务器上进行通信和执行命令。本系列将带您了解可用于编写服务器自动化剧本的主要 Ansible 功能。最后,我们将看到一个实际示例,说明如何创建剧本以自动设置远程 Nginx Web 服务器并向其部署静态 HTML 网站。 任务是您可以使用 Ansible playbook 自动化的最小操作单元。Playbook 通常包含一系列服务于某个目标的任务,例如设置 Web 服务器或将应用程序部署到远程环境。 Ansible 按照它们在 playbook 中定义的相同顺序执行任务。在使设置 LEMP 服务器等过程自动化之前,您需要评估哪些手动步骤是必需的,以及完成所有操作必须遵循的顺序。然后,您将能够确定您需要哪些任务以及可以使用哪些模块以更少的步骤实现您的目标。 模块提供了执行操作的快捷方式,否则您必须作为原始 bash 命令运行。这些也经常用于抽象不同操作系统之间的命令。 在本指南的前一部分中创建第一个剧本时,您定义了一个使用debug. 让我们再看看那个剧本。您可以使用该cat命令打印该文件的内容以供检查: cat ~/ansible-practice/playbook-01.yml 该剧本包含一个任务,用于在剧本的输出中打印一条消息: ~/ansible-practice/playbook-01.yml — – hosts: all tasks: – name: Print message debug: msg: Hello Ansible World 任务被定义为一个tasks游戏内名称下的列表,与hosts定义该游戏目标的指令处于同一级别。该name属性定义了将要执行该任务时将打印的输出。 示例任务调用debug模块,该模块允许您在剧中显示消息。例如,这些消息可用于显示调试信息,例如变量的内容或命令返回的输出消息。 ..

Read more

介绍 TLS或“传输层安全”——及其前身SSL——是用于将正常流量包装在受保护的加密包装器中的协议。使用这项技术,服务器可以安全地向其客户端发送信息,而不会被外界拦截或读取其消息。 在本指南中,我们将向您展示如何在 Ubuntu 20.04 上通过 Apache Web 服务器创建和使用自签名 SSL 证书。 注意:自签名证书将加密您的服务器和任何客户端之间的通信。但是,由于它不是由 Web 浏览器和操作系统中包含的任何受信任的证书颁发机构签署的,因此用户无法使用该证书来自动验证您的服务器的身份。因此,您的用户在访问您的网站时会看到安全错误。 由于此限制,自签名证书不适用于为公众服务的生产环境。它们通常用于测试或保护单个用户或一小群用户使用的非关键服务,这些用户可以通过备用通信渠道建立对证书有效性的信任。 如需更适合生产的证书解决方案,请查看Let’s Encrypt,一个免费的证书颁发机构。您可以在我们的如何在 Ubuntu 20.04 上使用 Let’s Encrypt 保护 Apache教程中了解如何下载和配置 Let’s Encrypt 证书。 先决条件 在开始本教程之前,您需要以下内容: 使用非root 用户、启用 sudo 的用户访问 Ubuntu 20.04 服务器。我们的Ubuntu 20.04 初始服务器设置指南可以向您展示如何创建此帐户。 您还需要安装 Apache。您可以使用apt. 首先,更新本地包索引以反映最新的上游更改: sudo apt update 然后,安装apache2软件包: sudo apt install apache2 最后,如果您ufw设置了防火墙,请打开http和https端口: sudo ufw allow “Apache Full” ..

Read more

作者选择了开放互联网/言论自由基金来接受捐赠,作为Write for DOnations 计划的一部分。 介绍 Jitsi Meet是一个基于WebRTC 的开源视频会议应用程序。Jitsi Meet 服务器提供多人视频会议室,您只需使用浏览器即可访问,并提供与 Zoom 或 Skype 电话会议类似的功能。Jitsi 会议的好处是您的所有数据仅通过您的服务器,并且端到端 TLS 加密确保没有人可以窥探通话。使用 Jitsi,您可以确保您的私人信息保持不变。 在本教程中,您将在 Ubuntu 20.04 上安装和配置 Jitsi Meet 服务器。默认配置允许任何人创建新的会议室。这对于在 Internet 上公开可用的服务器来说并不理想,因此您还将配置 Jitsi Meet,以便只有注册用户才能创建新会议室。创建会议室后,只要拥有唯一地址和可选密码,任何用户都可以加入。 先决条件 在开始本指南之前,您需要具备以下条件: 通过遵循Ubuntu 20.04教程的初始服务器设置来设置一台 Ubuntu 20.04 服务器,包括非 root 用户 sudo 启用。您需要的服务器大小主要取决于可用带宽和您希望使用服务器的参与者数量。下表将让您了解需要什么。 配置为指向您的服务器的域名。您可以按照如何使用 DigitalOcean教程设置主机名,了解如何将域指向 DigitalOcean Droplets 。在本指南中,使用示例域名jitsi.your_domain。 在选择服务器来运行 Jitsi Meet 实例时,您需要考虑托管会议室所需的系统资源。以下基准测试信息是从使用高质量视频设置的单核虚拟机收集的: 中央处理器 服务器带宽 两名参与者 3% 30Kbps 上行,100Kbps ..

Read more