Class: Controller

@nginstack/engine/lib/router/Controller~ Controller


new Controller()

Classe base para todas 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 uma 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 <nullable>

Conteúdo da resposta.


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 <nullable>

Conteúdo da resposta.


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 <nullable>

Conteúdo da resposta.


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.


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 <nullable>

Conteúdo da resposta.


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.


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 <nullable>

Conteúdo da resposta.


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çao HTTP que está sendo atendida.

response Response

Resposta da requisiçao HTTP que está sendo gerada.

Returns:

Resultado da ação ou o erro que ocorreu durante a sua execução.

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
See:
Example
this.on('afterAction', function (evt) {
   const original = evt.result;
   route.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
See:
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.

Type: ControllerEvent
See:
Example
this.on('error', function (evt) {
   route.result = RouteResult()
     .withStatus(Status.OK)
     .withContent({
       error: evt.error.message
     });
 });