Начало работы


Blank CLI


Blank Schema


Serverside JS API


HTTP API


Интеграция


Lifecycle events

ObjectLifeCycle

"objectLifeCycle": {
    "eventName": function () {}
},

Обработчики событий, происходящих с объектами в Store.

willCreate

"willCreate": function ($item, $user):Promise {}

Выполняется непосредственно перед созданием нового объекта, но до проведения валидации. Используйте этот обработчик как возможность модифицировать объект перед созданием или провести дополнительную валидацию и прервать эту операцию.

$item является ссылкой на сохраняемый объект. Все изменения, сделанные в $item, будут сохранены в БД.

Если обработчик возвращает Promise, платформа будет ожидать его resolve/reject.

Если обработчик выбрасывает исключение или происходит reject возвращенного Promise, создание объекта будет отменено.

Для отправки сообщения об ошибке исключение (или объект ошибки Promise) должно быть экземпляром класса UserError. В других случаях сервер вернет “500. Internal server error”.

didCreate

"didCreate": function ($item, $user) {}

Выполняется сразу после создания объекта. Изменения в $item уже ни на что не повлияют. Можно использовать этот обработчик для добавления какой-либо бизнес-логики по синхронизации данных или вызова внешнего API.

willSave

"willSave": function ($item, $prevItem, $user):Promise {}

Выполняется непосредственно перед сохранением объекта, но до проведения валидации. Не выполняется перед созданием объекта, для этого используйте обработчик didCreate. Используйте этот обработчик как возможность модифицировать объект перед сохранением или провести дополнительную валидацию и прервать сохранение.

$item является ссылкой на сохраняемый объект. Все изменения, сделанные в $item, будут сохранены в БД.

Если обработчик возвращает Promise, платформа будет ожидать его resolve/reject.

Если обработчик выбрасывает исключение или происходит reject возвращенного Promise, сохранение объекта будет отменено.

Для отправки сообщения об ошибке исключение (или объект ошибки Promise) должно быть экземпляром класса UserError. В других случаях сервер вернет “500. Internal server error”.

didSave

"didSave": function ($item, $prevItem, $user) {}

Выполняется сразу после сохранения объекта. Изменения в $item уже ни на что не повлияют. Можно использовать этот обработчик для добавления какой-либо бизнес-логики по синхронизации данных или вызова внешнего API.

willRemove

"willRemove": function ($item, $user):Promise {}

Выполняется непосредственно перед удалением объекта.

Если обработчик возвращает Promise, платформа будет ожидать его resolve/reject.

Если обработчик выбрасывает исключение или происходит reject возвращенного Promise, объект не будет удалён.

Для отправки сообщения об ошибке исключение (или объект ошибки Promise) должно быть экземпляром класса UserError. В других случаях сервер вернет “500. Internal server error”.

didRemove

"didRemove": function ($item, $user) {}

Выполняется сразу после удаления объекта.

StoreLifeCycle

didStart

"didStart": function () {}

Выполняется при старте воркера. Можно использовать для подготовки данных или их проверки после рестарта. !Внимание! Обработчик выполняется на всех воркерах, для выполнения обработчика один раз следует использовать инструменты синхронизации:

"didStart": function () {
    sync.once("myStoreDidStart", () => {
        //Этот код выполнится один раз
    });
}