跳至主要内容

连接 FaunaDB

FaunaDB 自称为“现代应用程序的数据 API”。它是一个具有 GraphQL 接口的数据库,使您能够使用 GraphQL 与其交互。由于您使用 HTTP 请求与它通信,因此您无需管理连接,这非常适合无服务器应用程序。

本教程介绍如何从部署在 Deno Deploy 上的应用程序连接到 Fauna 数据库。

您可以在此处找到一个更全面的教程,它在 Fauna 之上构建了一个示例应用程序 此处

从 Fauna 获取凭据

我们假设您已经在 https://dashboard.fauna.com 创建了一个 Fauna 实例。

要以编程方式访问您的 Fauna 数据库,您需要生成一个凭据

  1. 单击您特定数据库中的 **安全** 部分,然后单击 **新建密钥**。 fauna1

  2. 选择 **服务器** 角色,然后单击 **保存**。 复制密钥。 您将在下一步中需要它。

在 Deno Deploy 中创建一个项目

接下来,让我们在 Deno Deploy 上创建一个项目,并使用必要的环境变量进行设置

  1. 转到 https://dash.deno.com/new(如果您还没有,请使用 GitHub 登录),然后单击 **+ 空项目**(在 **从命令行部署** 下)。
  2. 现在单击项目页面上可用的 **设置** 按钮。
  3. 导航到 **环境变量** 部分,并添加以下密钥。
  • FAUNA_SECRET - 该值应为我们在上一步中创建的密钥。 fauna2

编写连接到 Fauna 的代码

虽然 Node 有一个 Fauna JavaScript 驱动程序,但对于 Deno,您应该使用 graphql 端点。

Fauna 为其数据库提供了一个 graphql 端点,它会生成基本变异,例如 createupdatedelete,用于在模式中定义的数据类型。 例如,Fauna 将生成一个名为 createQuote 的变异,用于在数据库中为数据类型 Quote 创建新的报价。

要与 Fauna 交互,我们需要向其 graphql 端点发出 POST 请求,并使用适当的查询和参数来获取返回的数据。 因此,让我们构建一个将处理这些事项的通用函数。

import query from "https://esm.sh/[email protected]";
import Client from "https://esm.sh/[email protected]";

// Grab the secret from the environment.
const token = Deno.env.get("FAUNA_SECRET");
if (!token) {
throw new Error("environment variable FAUNA_SECRET not set");
}

var client = new Client.Client({
secret: token,
// Adjust the endpoint if you are using Region Groups
endpoint: "https://db.fauna.com/",
});
// HEAD
client.query(query.ToDate("2018-06-06"));
//
client
.query(query.ToDate("2018-06-06"))
//1e2f378 (Add some more pages)
.then(function (res) {
console.log("Result:", res);
})
.catch(function (err) {
console.log("Error:", err);
});

将应用程序部署到 Deno Deploy

完成应用程序编写后,您可以在 Deno Deploy 上部署它。

为此,请返回您的项目页面,地址为 https://dash.deno.com/projects/<project-name>

您应该会看到几个部署选项。

除非您想添加构建步骤,否则我们建议您选择 GitHub 集成。

有关在 Deno Deploy 上部署的不同方法以及不同配置选项的更多详细信息,请阅读 此处