Built-in Middlewares

O Protontype disponibiliza alguns middlewares embarcados. Para saber como criar e usar middlewares, ver sessão de Middlewares desta documentação

BodyParserMiddleware

Middleware que faz o parse do request para propriedade params.req.body no formato texto. Para pasers do request em mais formatos pode-se usar o módulo proton-body-parser.

@RouterClass({baseUrl: "/tasks"})
export class TaskRouter extends ExpressRouter {
    @Route({
        endpoint: '/',
        method: Method.GET,
        middlewares: [ new BodyParserMiddleware()]
    })
    listTask(params: RouterFunctionParams) {
        console.log(params.req.body);
    }
}

O TypeORMCrudRouter usa o BodyParserMiddleware para ler os campos recebidos no request das suas rotas default.

JsonContentMiddleware([pretty?: boolean])

Middleware que adiciona informações básicas no cabeçalho das respostas em formato JSON. Pode ser informado através do parâmetro booleano pretty se o JSON deve ser indentado.

let basicJsonMiddleware = new JsonContentMiddleware();
let app = new ProtonApplication()
    .addMiddleware(basicJsonMiddleware).start();
let indentedJsonMiddleware = new JsonContentMiddleware(true);
let app = new ProtonApplication()
    .addMiddleware(indentedJsonMiddleware).start();

CORS

O CORS já tem suporte embarcado no Protontype e pode ser ativado através do arquivo de configuração. Ver sessão de Configurações.

Helmet

O middleware Helmet ajuda a proteger a aplicação de algumas vulnerabilidades conhecidas através de configurações no cabeçalho HTTP. Este middleware já é habilitado por padrão no start() da aplicação.