Executando verificação de segurança...
1

[ Duvida ] Estou desenvolvendo uma API para meu Front-End em AdonisJS e não sei aonde adicionar funções que não fazem parte do controller

Um problema que tenho enfrentado é que eu não sei organizar o código externo do controller, por exemplo, minha API em AdonisJS será uma ponte entre um Front-End e a TuyaAPI para controlar dispositivos inteligentes.

A Biblioteca da TuyaAPI possui os métodos necessários para fazer o request para ligar/desligar as lampadas por exemplo, e eu não sei aonde inserir essas funçoes, o que eu faço atualmente é colocar toda a logica que não vai ser usada no controller em uma pasta "services" e exporto de lá a funçao para utilizar nos controladores.

Qual seria a melhor forma de lidar com isso? Todo curso que vi sobre sempre ficava alternando entre Controller, Routes e Model, e nunca algo fora disso, por isso me sinto perdido dessa forma...

Carregando publicação patrocinada...
1

Não sou nenhum especialista mas... eu organizaria em um pasta chamada "helpers" ou "utils" se são funções que voce pode usar em 2 ou + controllers diferentes!
Se vai usar num controller só, talvez não precise se preocupar com isso agora e evitar o overengineering, saca?

1

Como falaram no comentário anterior, você pode ter uma pasta lib ou utils. Mas antes disso, o controller não deve ter lógica. Toda regra de negócio fica nos models. Model não serve só pra banco de dados. Então a sua lógica de conexão com o tuya pode ficar lá também.

1
1

Então vai outra dica pra você: saia do adonis enquanto ainda está no começo. Vá para Nestjs. Eu fiz isso no início do ano e não me arrependo.
Hoje eu fico com agonia quando preciso dar manutenção em algum projeto com Adonis.

1

Ainda não conheço sobre esse NestJS, eu trabalho com Laravel, e quando procurei algo em Javascript que fosse semelhante achei o Adonis. Gostei por conta do TypeScript, linguagem que já trabalho com VueJS.

1

Huumm.. É mesmo! Adonis é muito parecido com Laravel. Tão parecido que uma vez tive uma dúvida que não achei na documentação de Adonis, fui para a documentação do Laravel e achei.
Mas isso eu falo da versão 4.
Ia migrar para a versão 5 mas algumas coisas que eu precisava não estavam prontas e resolvi partir para o Nest. E isso foi complicado pois marcaram a versão 4 como legada sem concluir a 5. Isso foi foda.
Mas beleza.
Boa sorte!

1