AdonisJS, o primo do Laravel

Há um tempo eu fiz uma aplicação com o backend todo em NodeJS, então utilizei o framework ExpressJS. Mas confesso, não curti muito.

Esse ano, 2020, conheci o AdonisJS, um framework Javascript muito, muito, muito mesmo, parecido com o Laravel. De cara já virou meu framework node favorito. então resolvi fazer essa publicação para apresentá-lo à vocês.

Atualmente o AdonisJS está na versão 4 e se você já conhece o Laravel, ficará bem a vontade em programar nesse framework.

Veja por exemplo como é uma migration:

const Schema = use('Schema')

class ClientSchema extends Schema {
  up () {
    this.create('clients', (table) => {
      table.increments()
      table.string('name', 128).notNullable()
      table.string('cpf', 16).nullable().unique()
      table.string('phone', 32).nullable()
      table.timestamps()
    })
  }

  down () {
    this.drop('clients')
  }
}

Agora repare como é um controller:

const { validate } = use('Validator')
const Client = use('App/Models/Client')

class ClientController {
  async index ({ request }) {
    const { page } = request.get('page')
    const clients = await Client.query()
      .orderBy('name')
      .paginate(page, 10)
    return clients
  }
  async store ({ request, response }) {
    // 
  }
  async show ({ params }) {
    // 
  }
  async update ({ params, auth, request, response }) {
    //
  }
  async destroy ({ params, auth, response }) {
    //
  }
}

Veja como é a estrutura de pastas, veja a semelhança:

.
├── app/
  ├── Controllers
  ├── Middleware
├── config/
  ├── app.js
  ├── auth.js
  └── ...
├── database/
  ├── migrations/
  ├── seeds/
  └── factory.js
├── public/
├── resources/
  ├── ...
  └── views/
└── storage/

O mais legal disso é reaproveitar o conhecimento. Para quem trabalha com o Laravel, poder mexer com NodeJS de forma bem confortável é bastante animador, principalmente para quem quer fazer uma aplicação desktop, com Electron.

Subscribe to Blog do Van Neves

Don’t miss out on the latest issues. Sign up now to get access to the library of members-only issues.
[email protected]
Subscribe