OvernightJS: Uma maneira fácil de usar Express com Typescript
Decorators Typescript para Express
Introdução ao OvernightJS
O OvernightJS é uma lib que adiciona decorators Typescript ao Express. Ele não tem a premissa de adicionar novas camadas em cima do Express ou afasta-lo do modelo RESTful de se escrever APIs, diferentemente de outras libs mais complexas, o OvernightJS é relativamente simples, e bem fácil de usar pra quem já esta familiarizado com Express.
Como ele funciona?
Depois de instalado, simplesmente importe o controller decorator, coloque ele logo antes de uma classe Typescript, e passe uma rota a ele (como uma string). Essa string será adicionada automaticamente aos métodos routes no controller. Podemos adicionar routes ao controller usando decorators para Express como GET, POST, PUT e DELETE. Os métodos funcionarão exatamente como se fossem escritas em Express puro. Os decorators suportam middlewares Express também. Assim como passaríamos o middleware como segundo argumento de uma route Express, passamos como argumento do decorator. Veja o exemplo, ao invés de fazermos isso:
fazemos o seguinte:
Já podemos perceber que economizamos algumas linhas de código. E isso só tende a aumentar, assim que adicionamos novas routes.
Instalando
Tutorial Rápido
Após instalarmos o OvernightJS, importamos o decorator do “Controller” no começo do nosso arquivo .ts. O overnightJS também funciona com async/await. Veja mais um exemplo:
Assim que você configurar seu controller, importe no começo do server. A classe filha “Server”, que é parte do pacote @overnightjs/core, é necessária para habilitar as rotas. Essa classe também nos provicendia uma instância Express, a qual podemos interagir normalmente. Rotas são inicializadas usando o método addControllers(), como pode ser visto abaixo. (Podemos passar um único controller, ou um array deles)
Outra função legal dessa lib, é que não precisamos usar o objeto express.Router().