连接到 FaunaDB
FaunaDB 自称为“现代应用程序的数据 API”。它是一个具有 GraphQL 接口的数据库,使您能够使用 GraphQL 与之交互。由于您使用 HTTP 请求与之通信,因此您无需管理连接,这非常适合无服务器应用程序。
本教程介绍如何从部署在 Deno Deploy 上的应用程序连接到 Fauna 数据库。
您可以在此处找到一个更全面的教程,该教程在 Fauna 之上构建了一个示例应用程序。
从 Fauna 获取凭据 跳转到标题
我们假设您已经在 https://dashboard.fauna.com 创建了一个 Fauna 实例。
要以编程方式访问您的 Fauna 数据库,您需要生成一个凭据
-
单击您的特定数据库内的安全部分,然后单击新建密钥。
-
选择 服务器 角色,然后单击 保存。复制密钥。您将在下一步中需要它。
在 Deno Deploy 中创建一个项目 跳转到标题
接下来,让我们在 Deno Deploy 上创建一个项目,并使用必要的环境变量进行设置
- 转到 https://dash.deno.com/new(如果您尚未登录,请使用 GitHub 登录),然后在从命令行部署下单击 + 空项目。
- 现在单击项目页面上可用的设置按钮。
- 导航到环境变量部分,并添加以下密钥。
FAUNA_SECRET
- 该值应为我们在上一步中创建的密钥。
编写连接到 Fauna 的代码 跳转到标题
虽然 Node 有 Fauna JavaScript 驱动程序,但对于 Deno,您应该使用 graphql 端点。
Fauna 为其数据库提供了一个 graphql 端点,它为模式中定义的数据类型生成必要的 mutation,例如 create
、update
、delete
。例如,Fauna 将生成一个名为 createQuote
的 mutation,以在数据库中为数据类型 Quote
创建一个新的报价。
要与 Fauna 交互,我们需要向其 graphql 端点发出 POST 请求,并带有适当的查询和参数以获取返回的数据。因此,让我们构建一个通用函数来处理这些事情。
import query from "https://esm.sh/faunadb@4.7.1";
import Client from "https://esm.sh/faunadb@4.7.1";
// 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 上部署的不同方式和不同配置选项的更多详细信息,请阅读此处。