Skip to content

Embedded mode

This page documents the embedded Feathers server inside Nitro, its configuration contract and the recommended usage pattern for application developers.

Purpose

The embedded feathers server inside nitro helps keep the Nuxt module configuration, Feathers runtime, generated services, TypeScript client and CLI workflow aligned.

When to use this option

Use this page when you need to:

  • configure the embedded Feathers server inside Nitro;
  • document the decision in a starter or application;
  • validate the setup with a CLI command;
  • avoid drift between configuration, generated files and runtime behavior.

Configuration example

ts
// nuxt.config.ts
export default defineNuxtConfig({
  modules: ['nuxt-feathers-zod'],

  feathers: {
    client: { mode: 'embedded', pinia: true },
    server: { enabled: true, secureDefaults: true },
    transports: {
      rest: { path: '/feathers', framework: 'express' },
      websocket: { path: '/socket.io' },
    },
    servicesDirs: ['services'],
  }
})

CLI example

bash
bunx nuxt-feathers-zod init embedded --framework express --restPath /feathers --force

Runtime example

ts
const service = useService('messages')

const result = await service.find({
  query: {
    $limit: 10,
    $sort: { createdAt: -1 },
  },
})

Practical advice

  • Keep runtime-affecting options explicit in nuxt.config.ts.
  • Prefer CLI-generated services so manifests and generated types stay synchronized.
  • Run bunx nuxt-feathers-zod doctor after structural changes.
  • Use --dry before write operations on an existing project.

nuxt-feathers-zod module documentation