28 lines
1.3 KiB
Markdown
28 lines
1.3 KiB
Markdown
|
# Routes Folder
|
|||
|
|
|||
|
Routes define routes within your application. Fastify provides an
|
|||
|
easy path to a microservice architecture, in the future you might want
|
|||
|
to independently deploy some of those.
|
|||
|
|
|||
|
In this folder you should define all the routes that define the endpoints
|
|||
|
of your web application.
|
|||
|
Each service is a [Fastify
|
|||
|
plugin](https://fastify.dev/docs/latest/Reference/Plugins/), it is
|
|||
|
encapsulated (it can have its own independent plugins) and it is
|
|||
|
typically stored in a file; be careful to group your routes logically,
|
|||
|
e.g. all `/users` routes in a `users.js` file. We have added
|
|||
|
a `root.js` file for you with a '/' root added.
|
|||
|
|
|||
|
If a single file become too large, create a folder and add a `index.js` file there:
|
|||
|
this file must be a Fastify plugin, and it will be loaded automatically
|
|||
|
by the application. You can now add as many files as you want inside that folder.
|
|||
|
In this way you can create complex routes within a single monolith,
|
|||
|
and eventually extract them.
|
|||
|
|
|||
|
If you need to share functionality between routes, place that
|
|||
|
functionality into the `plugins` folder, and share it via
|
|||
|
[decorators](https://fastify.dev/docs/latest/Reference/Decorators/).
|
|||
|
|
|||
|
If you're a bit confused about using `async/await` to write routes, you would
|
|||
|
better take a look at [Promise resolution](https://fastify.dev/docs/latest/Reference/Routes/#promise-resolution) for more details.
|