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.