連線至 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
,以供 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 上部署的不同方式和不同組態選項的更多詳細資訊,請閱讀此處。