SuperAPI AI 工具集

nuxt-server-data

编程与开发

查看项目

更新于 10-15 23:58

技能介绍

用途:这是 Nuxt + NuxtHub + Cloudflare 应用的服务器端持久化层技能,是 nuxt-repositories(客户端 API 访问层)的对应后端部分,覆盖 API 背后的数据实现。

主要能力:用 Drizzle ORM 以 TypeScript 定义 D1/SQLite 的 schema;生成并应用迁移(本地与远程);在 Nitro 服务端路由(server/api/*.post.ts)中查询;通过 shared/types/ 在客户端与服务端之间共享类型;用隔离接缝测试数据库写入。

使用方式:NuxtHub 自动暴露 db 句柄,无需显式 import db;schema 从 server/db/schema 按名称导入。查询使用 Drizzle 的 eq/and/gt 等类型化操作符,而非内联原始 SQL 字符串。迁移生成使用 nuxt-hub db generate,本地与远程应用方式不同。

关键限制:迁移不会自动应用——nuxt build、wrangler deploy 和 Cloudflare Workers Builds 都不会执行迁移,需从本地检出手动应用,例如脚本 "db:migrate:remote": "NITRO_PRESET=cloudflare-module nuxt build && npx wrangler d1 migrations apply DB --remote --config .output/server/wrangler.json"。若部署后生产环境出现 "no such table",通常是漏了这一步。不要在 CI 环境对 --remote 运行迁移,因为 CI 没有 wrangler 认证。

反模式:不要在 shared/utils/ 中查询(该代码也会进入客户端包,服务端查询只放 server/);不要显式导入 db;不要用 vi.mock('~/server/db') 做测试,应使用环境守卫的接缝模式。

参考文件:drizzle-d1.md(schema 定义与查询模式)、nuxt-hub.md(hub.db 配置、迁移生成与应用、_hub_migrations 表)、server-types.md(跨端类型复用、Drizzle 推断行类型、Zod 请求/响应形状共享)。相关技能:nuxt-config、nuxt-forms、nuxt-testing、nuxt-repositories。