new Controller()
Classe base para todos os controladores que utilizem a API de roteamento do Engine.
Extends
- Emitter
Members
-
moduleFileName :string
-
Nome do módulo onde o controlador foi declarado. Utilizado apenas nas mensagens de erro para auxiliar o desenvolvedor a localizar o controlador responsável por uma falha em uma rota.
Type:
- string
Methods
-
<static> wrap(object)
-
Cria um controlador que encapsula o objeto informado. Todas as ações do controlador serão delegadas para o objeto informado e deverão ser criadas como métodos dele.
Parameters:
Name Type Description object
Object Objeto que será encapsulado pelo controlador.
-
badRequest( [opt_content])
-
Cria uma resposta com erro BAD_REQUEST. Opcionalmente, pode ser informado o conteúdo da resposta.
Parameters:
Name Type Argument Description opt_content
Object <optional>
Conteúdo da resposta.
Returns:
- Type
- RouteResult
-
created( [opt_content])
-
Cria uma resposta com estado CREATED. Opcionalmente, pode ser informado o conteúdo da resposta.
Parameters:
Name Type Argument Description opt_content
Object <optional>
Conteúdo da resposta.
Returns:
- Type
- RouteResult
-
forbidden( [opt_content])
-
Cria uma resposta com erro FORBIDDEN. Opcionalmente, pode ser informado o conteúdo da resposta.
Parameters:
Name Type Argument Description opt_content
Object <optional>
Conteúdo da resposta.
Returns:
- Type
- RouteResult
-
hasAction(name)
-
Verifica se há uma ação com o nome informado.
Parameters:
Name Type Description name
string Nome do método a ser validado sua presença.
Returns:
Retorna true caso haja uma ação com o nome informado.
- Type
- boolean
-
noContent()
-
Cria uma resposta com estado NO_CONTENT.
Returns:
- Type
- RouteResult
-
notFound( [opt_content])
-
Cria uma resposta com erro NOT_FOUND. Opcionalmente, pode ser informado o conteúdo da resposta.
Parameters:
Name Type Argument Description opt_content
Object <optional>
Conteúdo da resposta.
Returns:
- Type
- RouteResult
-
notModified()
-
Cria uma resposta com status NOT_MODIFIED (304), indicando que o cache do cliente continua válido em uma requisição com cabeçalhos de verificação de cache.
Returns:
- Type
- RouteResult
-
ok( [opt_content])
-
Cria uma resposta com estado OK. Opcionalmente, pode ser informado o conteúdo da resposta.
Parameters:
Name Type Argument Description opt_content
Object <optional>
Conteúdo da resposta.
Returns:
- Type
- RouteResult
-
permanentRedirect(url)
-
Cria uma resposta com status PERMANENT_REDIRECT (308), indicando que o recurso requisitado foi movido definitivamente para a URL informada.
Parameters:
Name Type Description url
string Nova URL definitiva do recurso da requisição.
Returns:
- Type
- RouteResult
-
runAction(action, parameters, request, response)
-
Executa uma ação do controlador com os parâmetros informados. Uma ação da controladora é um método da classe. A diferença entre executar este método e executar diretamente o método do controlador é que os eventos beforeAction e afterAction são emitidos.
Parameters:
Name Type Description action
string Nome da ação a ser executada. Uma ação deverá ser implementada como método do controlador.
parameters
Array.<*> Parâmetros que devem ser passados para o método do controlador responsável pela ação.
request
Request Requisição HTTP que está sendo atendida.
response
Response Resposta da requisição HTTP que está sendo gerada.
Returns:
Resultado da ação ou o erro que ocorreu durante a sua execução.
- Type
- RouteResult
-
temporaryRedirect(url)
-
Cria uma resposta com status TEMPORARY_REDIRECT (307), indicando que o recurso da requisição foi temporariamente alterado para a URL informada.
Parameters:
Name Type Description url
string Nova URL temporária do recurso da requisição.
Returns:
- Type
- RouteResult
Events
-
afterEvent
-
Evento emitido após a execução do método associado à ação de uma rota HTTP, mesmo que tenha ocorrido um erro durante a sua execução.
O seu uso é recomendado para fins de geração de logs ou para padronizar os resultados em um formato específico esperado pelo cliente da API HTTP.
Type: ControllerEvent
Example
this.on('afterAction', function (evt) { const original = evt.result; evt.result = RouteResult() .withStatus(Status.OK) .withContent({ success: !evt.error data: JSON.stringify(original.content) }); });
-
beforeAction
-
Evento emitido antes da execução do método associado à ação de uma rota HTTP.
O seu uso é recomendado para tratamentos ou validações que devem ocorrer para todas as rotas de uma API, ou para implementar um mecanismo de autorização customizado alternativo ao modelo de autorização padrão do sistema.
Type: ControllerEvent
Example
this.on('beforeAction', function (evt) { if (session.userKey == -1) { customAuthorization(evt.request.headers['x-user-token']); } });
-
error
-
Evento emitido se ocorrer um erro durante a execução do método associado à ação de uma rota HTTP.
O seu uso é recomendado para geração de logs ou para a geração de erros em um formato diferente do padrão do roteador HTTP, o qual expõe as propriedades do erro como propriedades de um objeto literal.
Observação: este evento irá capturar erros gerados nos eventos
beforeAction
eafterAction
, portanto ele será executado após esses eventos.Type: ControllerEvent
Example
this.on('error', function (evt) { evt.result = RouteResult() .withStatus(Status.OK) .withContent({ error: evt.error.message }); });