Консоль Ace
Ace — консоль AdonisJS. Это набор команд, которые запускаются через node ace и выполняют рутинную работу: создают контроллеры и модели по шаблону, запускают миграции, ставят пакеты. Аналог Artisan в Laravel.
Список команд
node ace listКоманда печатает все доступные команды, сгруппированные по темам: make, migration, db и другие. Подробности о любой команде показывает флаг --help:
node ace make:controller --helpВ ответ вы увидите аргументы и флаги команды с описаниями.
Создание файлов
Команды группы make создают файлы в нужной папке и с правильным именем:
node ace make:controller postsПоявится файл app/controllers/posts_controller.ts с пустым классом PostsController. Имена файлов в AdonisJS пишутся в snake_case — слова через подчёркивание.
| Команда | Что создаёт |
|---|---|
make:controller posts | app/controllers/posts_controller.ts |
make:model Post | app/models/post.ts |
make:migration posts | файл в database/migrations/ |
make:validator post | app/validators/post.ts |
make:middleware log_requests | файл в app/middleware/ |
make:view posts/index | resources/views/posts/index.edge |
Установка пакетов
Официальные пакеты AdonisJS ставятся командой add. Она устанавливает пакет через npm и сразу настраивает его: создаёт файл в config/, дописывает переменные в .env, регистрирует провайдер в adonisrc.ts.
node ace add @adonisjs/mailЕсли пакет уже установлен через npm, настроить его можно командой node ace configure @adonisjs/mail.
Своя команда
Можно написать и свою команду. Создайте её:
node ace make:command greetОткройте созданный файл и допишите аргумент и метод run:
// commands/greet.ts
import { BaseCommand, args } from '@adonisjs/core/ace'
export default class Greet extends BaseCommand {
static commandName = 'greet'
static description = 'Поприветствовать пользователя'
@args.string()
declare name: string
async run() {
this.logger.info(`Привет, ${this.name}!`)
}
}Теперь node ace greet Анна выведет в терминал строку «Привет, Анна!». Свойство commandName задаёт имя команды, декоратор @args.string() объявляет аргумент.
REPL
Команда node ace repl открывает интерактивную консоль, в которой загружено приложение. В ней удобно проверять запросы к базе, не создавая страниц.
Частая ошибка
Команды make не перезаписывают существующие файлы: если posts_controller.ts уже есть, Ace сообщит об этом и ничего не создаст. Не удаляйте файл ради повторного запуска команды — вы потеряете написанный код. Нужен другой файл — дайте ему другое имя.