TanStack Start 中文文档
认证与数据

数据库

数据库是任何动态应用的核心,提供存储、检索和管理数据所需的基础设施。TanStack Start 让集成各种数据库变得简单,为管理应用的数据层提供了一种灵活的方式。

该用什么?

TanStack Start 设计上适用于任何数据库服务商,所以如果你已经有偏好的数据库系统,可以用所提供的全栈 API 把它集成到 TanStack Start。无论你使用的是 SQL、NoSQL 还是其他类型的数据库,TanStack Start 都能满足你的需求。

在 TanStack Start 中使用数据库有多简单?

在 TanStack Start 中使用数据库,就像在 TanStack Start 服务器函数或服务器路由中调用你的数据库适配器/客户端/驱动/服务一样简单。

下面是一个如何连接数据库并读写它的抽象示例:

import { createServerFn } from '@tanstack/react-start'

const db = createMyDatabaseClient()

export const getUser = createServerFn().handler(async ({ context }) => {
  const user = await db.getUser(context.userId)
  return user
})

export const createUser = createServerFn({ method: 'POST' }).handler(
  async ({ data }) => {
    const user = await db.createUser(data)
    return user
  },
)

这个例子显然是虚构的,但它说明:只要你能在服务器函数或服务器路由中调用某个数据库服务商,你就可以在 TanStack Start 中使用任何数据库服务商。

译者注:数据库访问一定放在服务端

数据库的凭据必须只存在于服务端。永远不要在客户端组件里直接连接数据库——客户端代码会暴露连接字符串。正确的做法是:在服务器函数(createServerFn)或服务器路由里做所有数据库操作,客户端通过类型安全的 RPC 调用它们。这样连接串只存在于服务器,客户端拿到的只是结果数据。

推荐的数据库服务商

虽然 TanStack Start 设计上适用于任何数据库服务商,但我们强烈建议考虑我们经过审核的合作伙伴数据库服务商 NeonConvex。它们已经过 TanStack 审核,符合我们的质量、开放性和性能标准,都是你数据库需求的上佳之选。

什么是 Neon?

Neon

Neon 是一个完全托管的 serverless PostgreSQL,把存储和计算分离,提供自动扩缩、数据库分支、内置连接池和时间点恢复等能力。

译者注:什么是 serverless 数据库?

serverless(无服务器)数据库是指由云厂商托管、按需自动扩缩容的数据库服务:你不用自己维护数据库服务器,通常按用量计费,空闲时几乎不花钱,适合起步阶段和小规模项目。与之相对的是自托管数据库(自己部署维护 Postgres 等)。

什么是 Convex?

Convex

Convex 是一个 serverless 数据库平台,提供实时、可扩展、事务性的数据后端,让你无需手动管理数据库服务器或编写复杂查询。

什么是 Prisma Postgres?

Prisma

Prisma Postgres 提供生产就绪的 Postgres 数据库,零配置、自动扩缩,并带有一个供团队检查和管理数据的 Web 界面。

文档与 API

集成不同数据库到 TanStack Start 的文档即将推出!与此同时,请关注我们的示例和指南,了解如何在整个 TanStack Start 应用中充分利用你的数据层。

On this page