Rotas e controladores
No último tutorial criamos um novo aplicativo e registramos rotas para renderizar visualizações sem usar controladores.
Renderizar visualizações simples é bom sem controladores. Para criar aplicativos reais, você precisa lidar com a lógica do domínio e criar visualizações com dados dinâmicos. Neste tutorial, aprenderemos como criar controladores e vinculá-los a rotas.
Criando controladores
Controladores são classes ES2015 armazenadas dentro do diretório app/Http/Controllers
. Cada arquivo define um único controlador, e você é livre para criar quantos métodos quiser em um único controlador.
Vamos mergulhar rapidamente e criar um novo controlador. Como transformaremos este aplicativo em um blog, vamos nomear o controlador PostsController. Como sempre, usaremos o ace para criar o controlador para nós.
./ace make:controller Posts
# Saída
create: app/Http/Controllers/PostsController.js
Criamos nosso primeiro controlador. Vamos vincular esse controlador à rota e renderizar uma visualização do controlador. Precisamos substituir Route.on('/').render('home')
pela linha de código abaixo.
// app/Http/routes.js
Route.get('/', 'PostsController.index')
// Final Routes File
const Route = use('Route')
Route.get('/', 'PostsController.index')
Route.on('about').render('about')
Route.on('contact').render('contact')
Há um guia completo sobre Routes que você pode consultar. Por enquanto, escreveremos algum código dentro do PostsController para renderizar uma visualização.
// app/Http/Controllers/PostsController.js
'use strict'
class PostsController {
* index (request, response) { <1>
yield response.sendView('home') <2>
}
}
module.exports = PostsController
- Criamos um método de controlador chamado
index
que é um método gerador ES2015, simplificando a escrita de código assíncrono. - Em seguida, usamos o método
sendView
para renderizar a visualização home.