存储

配置 KV 存储、缓存和数据库连接。

Note

本页所有示例都假设已在 nitro.config.ts 中导入以下内容:

import { defineConfig } from "nitro";

#kv

  • 默认值:{}

KV 存储配置。

export default defineConfig({
  kv: {
    redis: {
      driver: "redis",
      url: "redis://localhost:6379",
    },
  },
});

使用 $development 键可在开发模式下覆盖挂载配置:

export default defineConfig({
  $development: {
    kv: {
      redis: {
        driver: "fs",
        base: "./data/redis", // use filesystem in development
      },
    },
  },
});

$development 仅适用于开发服务器。预渲染时使用 $prerender 覆盖挂载配置。driver 不同时会替换整个挂载项;driver 相同时则会深度合并选项。

Note

该选项此前名为 storage,目前仍可作为已弃用的别名使用。已弃用的 devStorage 选项由 $development(和 $prerender)中的 kv 取代。

Read more in Docs > Storage.

#cache

  • 默认值:{}

缓存函数和处理器及 cache 路由规则使用的缓存存储和全局默认选项。

export default defineConfig({
  cache: {
    driver: "fs", // "memory" (default) | "fs" | "kv"
    fs: { dir: ".data/cache" },
    defaults: { maxAge: 60, swr: true },
  },
});
  • driver:memory(进程内 LRU)、fs(文件系统,仅兼容 Node.js 的运行时)或 kv(kv 存储层)。配置了 cache KV 挂载点时默认为 kv,否则默认为 memory。
  • memory:memory 驱动的 maxSize 和 maxBytes 限制。
  • fs:fs 驱动的 dir(默认为 .data/cache)。
  • defaults:所有缓存的全局默认选项(maxAge、swr、staleMaxAge、maxResolveTime、base,以及仅适用于处理器的 varies、allowQuery、allowCookies、allowAuthorization、sendCacheControl、cacheStatusHeader、maxBodySize)。
Read more in Docs > Cache#cache Storage.

#database

数据库连接配置。需要启用 experimental.database: true。

export default defineConfig({
  database: {
    default: {
      connector: "sqlite",
      options: { name: "db" },
    },
  },
});
Read more in Docs > Database.

#devDatabase

开发模式下的数据库连接配置覆盖项。

export default defineConfig({
  devDatabase: {
    default: {
      connector: "sqlite",
      options: { name: "db-dev" }, // separate dev database
    },
  },
});