2023-03-03 17:52:55 +00:00
---
navigation.icon: IconDirectory
title: 'modules'
head.title: 'modules/'
description: Use the modules/ directory to automatically register local modules within your application.
---
# Modules Directory
Nuxt scans the `modules/` directory and loads them before starting. It is a good place to place any local modules you develop while building your application.
The auto-registered files patterns are:
- `modules/*/index.ts`
- `modules/*.ts`
You don't need to add those local modules to your [`nuxt.config.ts` ](/docs/guide/directory-structure/nuxt.config ) separately.
::code-group
2023-04-04 13:23:13 +00:00
2023-03-03 17:52:55 +00:00
```ts [modules/hello/index.ts]
// `nuxt/kit` is a helper subpath import you can use when defining local modules
// that means you do not need to add `@nuxt/kit` to your project's dependencies
import { createResolver, defineNuxtModule, addServerHandler } from 'nuxt/kit'
export default defineNuxtModule({
meta: {
name: 'hello'
},
setup () {
const { resolve } = createResolver(import.meta.url)
// Add an API route
addServerHandler({
route: '/api/hello',
handler: resolve('./runtime/api-route')
})
}
})
```
2023-04-04 13:23:13 +00:00
2023-03-03 17:52:55 +00:00
```ts [modules/hello/runtime/api-route.ts]
export default defineEventHandler(() => {
return { hello: 'world' }
2023-05-22 19:44:17 +00:00
})
2023-03-03 17:52:55 +00:00
```
2023-04-04 13:23:13 +00:00
2023-03-03 17:52:55 +00:00
::
When starting Nuxt, the `hello` module will be registered and the `/api/hello` route will be available.
2023-03-05 09:51:10 +00:00
The local modules are registered by alphabetical order. You can change the order by prefixing with a number if front of each directory:
2023-03-08 16:06:22 +00:00
```md
2023-03-05 09:51:10 +00:00
modules/
1.first-module/
index.ts
2.second-module.ts
2023-03-08 16:06:22 +00:00
```
2023-03-05 09:51:10 +00:00
2023-03-03 17:52:55 +00:00
:ReadMore{link="/docs/guide/going-further/modules"}