Ця документація була автоматично перекладена штучним інтелектом.
Сервер NocoBase генерує відповідні події протягом життєвого циклу застосунку, життєвого циклу плагінів та під час операцій з базою даних. Розробники плагінів можуть прослуховувати ці події для реалізації розширеної логіки, автоматизованих операцій або власної поведінки.
Система подій NocoBase поділяється на два основні рівні:
app.on() - Події рівня застосунку: Прослуховують події життєвого циклу застосунку, такі як запуск, встановлення, увімкнення плагінів тощо.db.on() - Події рівня бази даних: Прослуховують події операцій на рівні моделі даних, такі як створення, оновлення, видалення записів тощо.Обидва успадковують функціонал від EventEmitter Node.js, підтримуючи стандартні інтерфейси .on(), .off() та .emit(). NocoBase також розширює підтримку emitAsync, що використовується для асинхронного запуску подій та очікування завершення виконання всіх слухачів.
Слухачі подій зазвичай слід реєструвати у методі beforeLoad() плагіна. Це гарантує, що події будуть готові вже на етапі завантаження плагіна, і подальша логіка зможе коректно на них реагувати.
app.on()Події застосунку використовуються для відстеження змін у життєвому циклі застосунку NocoBase та плагінів. Вони ідеально підходять для ініціалізації логіки, реєстрації ресурсів або перевірки залежностей плагінів.
| Назва події | Час спрацювання | Типове використання |
|---|---|---|
beforeLoad / afterLoad | До / після завантаження застосунку | Реєстрація ресурсів, ініціалізація конфігурації |
beforeStart / afterStart | До / після запуску сервісу | Запуск завдань, виведення логів запуску |
beforeInstall / afterInstall | До / після встановлення застосунку | Ініціалізація даних, імпорт шаблонів |
beforeStop / afterStop | До / після зупинки сервісу | Очищення ресурсів, збереження стану |
beforeDestroy / afterDestroy | До / після знищення застосунку | Видалення кешу, розрив з'єднань |
beforeLoadPlugin / afterLoadPlugin | До / після завантаження плагіна | Зміна конфігурації плагіна або розширення функціоналу |
beforeEnablePlugin / afterEnablePlugin | До / після увімкнення плагіна | Перевірка залежностей, ініціалізація логіки плагіна |
beforeDisablePlugin / afterDisablePlugin | До / після вимкнення плагіна | Очищення ресурсів плагіна |
afterUpgrade | Після завершення оновлення застосунку | Виконання міграції даних або виправлення сумісності |
Приклад: Прослуховування події запуску застосунку
Приклад: Прослуховування події завантаження плагіна
db.on()Події бази даних дозволяють відстежувати різні зміни даних на рівні моделі. Вони підходять для аудиту, синхронізації, автоматичного заповнення та інших операцій.
| Назва події | Час спрацювання |
|---|---|
beforeSync / afterSync | До / після синхронізації структури бази даних |
beforeValidate / afterValidate | До / після валідації даних |
beforeCreate / afterCreate | До / після створення записів |
beforeUpdate / afterUpdate | До / після оновлення записів |
beforeSave / afterSave | До / після збереження (включно зі створенням та оновленням) |
beforeDestroy / afterDestroy | До / після видалення записів |
afterCreateWithAssociations / afterUpdateWithAssociations / afterSaveWithAssociations | Після операцій, що включають асоційовані дані |
beforeDefineCollection / afterDefineCollection | До / після визначення колекцій |
beforeRemoveCollection / afterRemoveCollection | До / після видалення колекцій |
Приклад: Прослуховування події після створення даних
Приклад: Прослуховування події перед оновленням даних