连接到 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 端点,它会生成诸如 create
、update
、delete
之类的基本变异,用于在模式中定义的数据类型。例如,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 上部署的不同方法以及不同配置选项的更多详细信息,请阅读 此处。