Server

useSurreal

Access the SurrealDB client in your Nitro server handlers.

Server useSurreal

The server-side useSurreal is auto-imported in your Nitro event handlers. It connects to the remote SurrealDB instance and optionally supports per-request sessions.

Basic usage

Without an event, it returns the shared Surreal client:

server/api/users.get.ts
export default defineEventHandler(async () => {
  const client = await useSurreal()

  return await client.select(new Table('users')).json()
})

With per-request sessions

Pass the H3Event to create an isolated session per request:

server/api/users.get.ts
export default defineEventHandler(async (event) => {
  const session = await useSurreal(event)

  return await session.select(new Table('users')).json()
})

When called with an event:

  1. The session mode is determined by server.session config ('new' or 'fork')
  2. The surrealdb:session:init hook is fired with the session and event

Return type

CallReturn type
useSurreal()Promise<Surreal>
useSurreal(event)Promise<SurrealSession>