Привет, в PHP (PDO) есть классный метод PDO::inTransaction (Checks if inside a transaction). Сейчас при переписывании кода на NodeJS (npm пакет "mysql") возникла следующая проблема - есть набор методов которые должны быть запущены внутри транзакции, методы могут быть вызваны как по отдельности, так и внутри друг друга.
createUser() {
// Нужно начать транзакцию. Или добавляем все данные или возвращаем ошибку
startTransaction()
insertPhone() {
if (success) {
relatePhoneToUser()
}
}
insertEmail() {
if (success) {
relateEmailToUser()
}
}
}
// Юзер уже создан, мы просто хотим добавить новый телефон и привязать его. Если по какой-то причине телефон не удасться привязать в отдельной таблице, то номер нужно удалить (можно вручную, но транзакции то для этого и придуманы)
insertPhone() {
if (success) {
relatePhoneToUser()
}
}
В англо интернетах не нашел ответа на данный запрос. Подскажите как правильно построить архитектуру в данном случае?