Server Routes
Nuxt automatically scans files inside the ~/server/api directory to register API and server handlers with HMR (Hot Module Reloading) support.
Each file should export a default function defined with defineEventHandler(), which can return JSON data, a Promise, or use event.res.end() to send response. This API can now be called universally using await $fetch('/api/hello').
/server/api/hello.ts
export default defineEventHandler(() => {
  return {
    message: 'Hello, World!',
  };
});
/pages/index.vue
<script setup>
let data = await $fetch('/api/hello');
</script>
<template>
  <div>
    <div>Returned JSON:</div>
    <div>
      {{ data }}
    </div>
  </div>
</template>
Result
Returned JSON:
{
  "message": "Hello, World!"
}

