AdonisJS | Framework semelhante ao Laravel para NodeJs

Feb 28 2023
AdonisJS é um framework web completo para Node.js que é fortemente influenciado pelo Laravel, um popular framework web PHP.

AdonisJS é um framework web completo para Node.js que é fortemente influenciado pelo Laravel, um popular framework web PHP. Neste resumo, exploraremos as semelhanças e diferenças entre o AdonisJS e o Laravel e forneceremos exemplos de recursos do AdonisJS que correspondem aos recursos do Laravel.

Semelhanças:

  1. Arquitetura MVC: Tanto o AdonisJS quanto o Laravel usam o padrão de arquitetura Model-View-Controller (MVC) para estruturar aplicativos da web.
  2. Interface de linha de comando (CLI): AdonisJS e Laravel fornecem uma interface de linha de comando (CLI) para gerar código clichê, executar migrações de banco de dados e outras tarefas.
  3. Roteamento: ambas as estruturas usam roteamento para definir como as solicitações HTTP são tratadas.
  4. Middleware: AdonisJS e Laravel usam middleware para lidar com tarefas como autenticação, validação de solicitação e registro.
  5. ORM: Tanto o AdonisJS quanto o Laravel fornecem um ORM (Mapeamento Objeto-Relacional) para trabalhar com bancos de dados.
  6. Modelos semelhantes a lâminas: AdonisJS vem com seu próprio mecanismo de modelagem chamado Edge, que fornece uma sintaxe semelhante à lâmina do Laravel.
  7. Comunidade: Tanto o AdonisJS quanto o Laravel têm comunidades ativas de desenvolvedores que contribuem para o desenvolvimento do framework, criam pacotes e fornecem suporte.
  1. Linguagem: AdonisJS é construído sobre Node.js, enquanto Laravel é construído sobre PHP.
  2. Async: AdonisJS é projetado para ser assíncrono e usa Promises, enquanto o Laravel é síncrono e usa Exceptions.
  3. Estrutura de arquivo: AdonisJS tem uma estrutura de arquivo diferente do Laravel, com diretórios como app/Controllerse app/Modelsem vez de app/Http/Controllerse app/Modelsno Laravel.
  4. Configuração: o AdonisJS usa .envarquivos para configuração, enquanto o Laravel usa .envtanto arquivos quanto configarquivos.
  5. Ordenação de Middleware: AdonisJS aplica middleware na ordem em que são definidos no arquivo de rota, enquanto Laravel aplica middleware na ordem em que são definidos no arquivo Kernel.

Aqui está um exemplo de como AdonisJS e Laravel diferem em sua abordagem de roteamento:

No AdonisJS, você pode definir rotas usando uma API fluente:

Roteamento AdonisJs

No Laravel:

Roteamento Laravel

Segue um exemplo de como criar um modelo e migração no AdonisJS:

Este comando irá gerar um novo arquivo de modelo em app/Models chamado Post.js e um arquivo de migração em database/migrations chamado algo como 1612989050522_create_posts_table.js.

Criar comando de modelo em AdonisJs

Agora abra o arquivo de migração e defina o esquema para a poststabela:

Essa migração criará uma poststabela com carimbos de data/ hora , id, e e .titlebodycreated_atupdated_at

Exemplo de Migração do AdnoisJs

Agora abra o arquivo de modelo e defina o esquema para o Postmodelo:

Exemplo de Modelo AdonisJs

É isso! Agora você pode usar o Postmodelo para interagir com a poststabela em seu banco de dados. Por exemplo, para criar uma nova postagem, você pode fazer o seguinte:

Interaja com o modelo AdonisJs

Aqui está um exemplo de um controlador AdonisJS básico para o Postmodelo que criamos anteriormente:

Exemplo de controlador em AdonisJs

Este controlador define vários métodos para lidar com operações CRUD no Postmodelo.

O index()método recupera todas as postagens do banco de dados e as retorna como uma matriz.

O store()método cria uma nova postagem extraindo o titlee bodydo objeto de solicitação, criando uma nova Postinstância, configurando seus campos e salvando-a no banco de dados. Em seguida, ele retorna a postagem recém-criada.

O show()método recupera uma única postagem por seu idparâmetro e a retorna.

O update()método atualiza um post por seu idparâmetro, extraindo o titlee bodydo objeto request, atualizando os campos do post e salvando-o no banco de dados. Em seguida, ele retorna a postagem atualizada.

O destroy()método exclui uma postagem por seu idparâmetro e a retorna.

Esses métodos usam middleware integrado do AdonisJS e objetos de solicitação/resposta para lidar com solicitações recebidas e respostas enviadas. Observe que este é apenas um exemplo básico e há muitos outros recursos e técnicas disponíveis no AdonisJS para construir controladores robustos.

O AdonisJS, com sua sintaxe e convenções semelhantes ao Laravel, fornece aos desenvolvedores uma experiência familiar e intuitiva ao criar aplicativos da Web full-stack em JavaScript. A arquitetura MVC da estrutura, o poderoso ORM, middleware, roteamento, autenticação e recursos de renderização de visualização o tornam uma escolha robusta e eficiente para desenvolvedores que procuram criar aplicativos da Web modernos em Node.js.