"... the server will *called* the index action..." => "... the server will **call** the index action..."
1.5 KiB
Controllers
See the controllers' concepts for details.
How to create a controller?
There are two ways to create a controller:
- Using the CLI
strapi generate:controller user. Read the CLI documentation for more information. - Manually create a JavaScript file named
User.jsin./api/**/controllerswhich contains at least one endpoint.
Adding Endpoints
Each controller’s action must be an async function and receives the context (ctx) object as first parameter containing the request context and the response context. The action has to be bounded by a route.
Example
In this example, we are defining a specific route in ./api/hello/config/routes.json that takes Hello.index as handler. It means that every time a web browser is pointed to the /hello URL, the server will call the index action in the Hello.js controller. Our index action will return Hello World!. You can also return a JSON object.
Path — ./api/hello/config/routes.json.
{
"routes": [
{
"method": "GET",
"path": "/hello",
"handler": "Hello.index"
}
]
}
Path — ./api/hello/controllers/Hello.js.
module.exports = {
// GET /hello
index: async (ctx) => {
ctx.send('Hello World!');
}
};
::: note
A route handler can only access the controllers defined in the ./api/**/controllers folders.
:::