跳至主要內容

連線至 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,以供 schema 中定義的資料類型使用。例如,Fauna 會產生一個名為 createQuote 的變異,以在資料庫中為資料類型 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 上部署的不同方式和不同組態選項的更多詳細資訊,請閱讀此處