Hooks

使用生命周期钩子与 NuxtHub 保持同步。

onHubReady()

使用 onHubReady() 确保在 NuxtHub 环境绑定设置完成并应用数据库迁移后,某些代码能够执行。

onHubReady() 是使用 hubHooks 对象的快捷方式,它在后台监听 bindings:readydatabase:migrations:done 事件。
server/plugins/migrations.ts
export default defineNitroPlugin(() => {
  // Only run in development
  if (import.meta.dev) {
    onHubReady(async () => {
      console.log('NuxtHub is ready! 🚀')
    })
  }
})

hubHooks

hubHooks 对象是一个可用于与 NuxtHub 保持同步的钩子集合。

签名

签名
export interface HubHooks {
  'bindings:ready': () => any | void
  'database:migrations:done': () => any | void
}

用法

您可以使用 hubHooks 对象在服务器插件中监听 HubHooks 事件。

server/plugins/hub.ts
export default defineNitroPlugin(() => {
  hubHooks.hook('bindings:ready', () => {
    console.log('NuxtHub bindings are ready!')
    const db = hubDatabase()
  })
  // Only run in development and if the database is enabled
  if (import.meta.dev) {
    hubHooks.hook('database:migrations:done', () => {
      console.log('Database migrations are done!')
    })
  }
})
请注意,hubHooks 是一个 hookable 实例。