返回介绍

Xata 与 Astro

发布于 2024-06-05 21:19:56 字数 5154 浏览 0 评论 0 收藏 0

Xata 是一个 Serverless 数据平台,它通过公开单一的连续性 REST API 来结合了关系数据库、搜索引擎和分析引擎等功能。

通过 Xata 添加一个数据库

前期准备

  • 一个 Xata 账号,并且通过该账号创建了一个数据库(你可以使用来自于 Web 界面的样例数据);
  • 一个可访问的令牌(XATA_TOKEN_API);
  • 你的数据库连接。

在你更新并初始化 Xata 命令行 之后,你将在 .env 文件中拥有自己的 API 令牌以及数据库 URL。

一切设置妥当之后,你应该拥有以下内容:

.env
XATA_API_KEY=hash_key


# 如果在你的 git 分支中不存在同名的 xata 分支情况下,该 xata 分支会被使用
XATA_BRANCH=main

以及创建好的 databaseURL

.xatarc
{
  "databaseUrl": "https://your-database-url"
}

环境配置

为了让你的环境变量开启 IntelliSense 以及拥有类型安全,请在你的 src/ 目录下编辑或创建一个 env.d.ts 文件

src/env.d.ts
interface ImportMetaEnv {
  readonly XATA_API_KEY: string;
  readonly XATA_BRANCH?: string;
}


interface ImportMeta {
  readonly env: ImportMetaEnv;
}

使用 Xata 命令行工具的代码生成功能,然后选择 TypeScripts 选项并创建一个 SDK 实例,当中的类型与会与你的数据库模式相匹配。除此之外,@xata.io/client 也会添加到你的 package.json 文件中。

你的 Xata 环境变量和数据库链接会自动被 SDK 实例拉取,所以就再也不需要其他额外的设置操作。

现在,你的项目应该具有以下结构:

  • 文件夹src/
    • xata.ts
    • env.d.ts
  • .env
  • astro.config.mjs
  • package.json
  • .xatarc

创建你的查询

为了查询你的博文,请在一个 .astro 文件中导入并使用 XataClient 类。以下例子将从 Xata 的样例博客数据库中请求前 50 篇文章。

src/pages/blog/index.astro
---
import { XataClient } from '../../xata';


const xata = new XataClient({
  apiKey: import.meta.env.XATA_API_KEY,
  branch: import.meta.env.XATA_BRANCH
});


const { records } = await xata.db.Posts.getPaginated({
  pagination: {
    size: 50
  }
})
---


<ul>
  {records.map((post) => (
    <li>{post.title}</li>
  ))}
</ul>

需要注意的是,每当你的模式发生变化时,需要重新生成 SDK。因此,请避免对 Xata 命令行工具所创建的生成文件进行更改,因为一旦模式更新,你的更改将被覆盖。

官方资源

更多后端服务指南

Recipes

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。
列表为空,暂无数据
    我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
    原文