在本页

连接到 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 将为数据类型 Quote 生成一个名为 createQuote 的变异,以在数据库中创建新的报价。

为了与 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 上部署的不同方法以及不同配置选项的更多详细信息,请阅读 此处