Nuxt/docs/1.getting-started/6.server-directory.md

1.7 KiB

description
Using server directory to create middlewares, plugins and API easily.

Server Directory

Nuxt scans files under server directory to create middlewares, plugins and API routes to create features to use inside components or pages.

Each file under these folders must return a function defined with defineEventHandler().

Server Routes

Anything under ~/server/api folder will create API routes to fetch data within API route.

export default defineEventHandler(() => {
    return {
      greetings: 'traveler'
    }
})
<script setup lang="ts">
const {data} = await useFetch('/api/hello')
</script>

This server route will return a data object that contains an object with content of {greetings: 'traveler'}.

Server route file will automatically match with GET method and it can be changed by adding method names to file name such as: .post, .put, .delete. Routes may accept parameters, body and query parameters to get some values.

:ReadMore{link="/docs/guide/directory-structure/server#matching-route-parameters"}

Server Middleware

Nuxt will read anything under ~/server/middleware folder and create middlewares for you to tweak request information.

export default defineEventHandler((event) => {
  event.context.auth = { user: 123 }
})

:ReadMore{link="/docs/guide/directory-structure/server#server-middleware"}

Server Plugins

Any files under ~/server/plugins folder will be registered as Nitro Plugin for changing Nitro's behavior.

:ReadMore{link="/docs/guide/directory-structure/server#server-plugins"}