Answer the question
In order to leave comments, you need to log in
How to build transaction logic with large nesting?
Hello, PHP (PDO) has a cool method PDO::inTransaction (Checks if inside a transaction). Now, when rewriting the code in NodeJS (npm package "mysql"), the following problem arose - there is a set of methods that must be run inside a transaction, methods can be called both individually and inside each other.
createUser() {
// Нужно начать транзакцию. Или добавляем все данные или возвращаем ошибку
startTransaction()
insertPhone() {
if (success) {
relatePhoneToUser()
}
}
insertEmail() {
if (success) {
relateEmailToUser()
}
}
}
// Юзер уже создан, мы просто хотим добавить новый телефон и привязать его. Если по какой-то причине телефон не удасться привязать в отдельной таблице, то номер нужно удалить (можно вручную, но транзакции то для этого и придуманы)
insertPhone() {
if (success) {
relatePhoneToUser()
}
}
Answer the question
In order to leave comments, you need to log in
Didn't find what you were looking for?
Ask your questionAsk a Question
731 491 924 answers to any question