返回介绍

存储 Storage

发布于 2024-04-15 22:23:13 字数 2966 浏览 0 评论 0 收藏 0

Nitro 提供了一个内置的存储层,可以抽象文件系统或数据库或任何其他数据源。

useStorage() 是使用 内存驱动程序createStorage 实例。

**示例:**简单(内存中)操作

js
await useStorage().setItem('test:foo', { hello: 'world' })
await useStorage().getItem('test:foo')

// 您还可以在 useStorage(base) 中指定基数
await useStorage('test').setItem('foo', { hello: 'world' })
await useStorage('test').getItem('foo')

详细用法见Unstorage

Mountpoints

您可以使用 storage 选项安装存储驱动程序:

nitro.config.ts
import { defineNitroConfig } from 'nitropack/config'

export default defineNitroConfig({
  storage: {
    'redis': {
      driver: 'redis',
      /* redis connector options */
    },
    'db': {
      driver: 'fs',
      base: './data/db'
    }
  }
})
nuxt.config.ts
export default defineNuxtConfig({
  nitro: {
    storage: {
      redis: {
        driver: 'redis',
        /* redis connector options */
      },
      db: {
        driver: 'fs',
        base: './.data/db'
      }
    }
  }
})

Usage:

js
await useStorage('redis').setItem('foo', { hello: 'world' })
await useStorage('redis').getItem('foo')
// 或者
await useStorage().setItem('redis:foo', { hello: 'world' })
await useStorage().getItem('redis:foo')

您可以在 unstorage 文档 上找到驱动程序列表。

在开发中,Nitro 使用 FS 驱动程序 添加“缓存”挂载点,如果使用 Nuxt

js
await useStorage('cache').setItem('foo', { hello: 'world' })
await useStorage('cache').getItem('foo')

Development storage

您可以在开发期间使用 devStorage 键覆盖存储配置,这在您在生产中使用数据库并希望在开发中使用文件系统时非常有用。

nitro.config.ts
export default defineNitroConfig({
  // 生产
  storage: {
    db: {
      driver: 'redis',
      /* redis connector options */
    }
  },
  // 开发
  devStorage: {
    db: {
      driver: 'fs',
      base: './data/db'
    }
  }
})
nuxt.config.ts
export default defineNuxtConfig({
  nitro: {
    // 生产
    storage: {
      db: {
        driver: 'redis',
        /* redis connector options */
      }
    },
    // 开发
    devStorage: {
      db: {
        driver: 'fs',
        base: './data/db'
      }
    }
  }
})

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

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

发布评论

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