Сначала я пытаюсь создать условный оператор, потому что ниже приведены три условия, и если один из этих запросов не определен, код останавливается из-за ошибки.
const getEmptyCartQuery = await shopping_cart.findOne({
(...)
});
const needsUpdatedQuantityQuery = await shopping_cart.findOne({
(...)
});
const needsNewCartQuery = await shopping_cart.findOne({
(...)
});
Поэтому я написал следующеекод с обработкой исключений с помощью оператора try-catch.
const data = await shopping_cart.findAll({
where: { cart_id }
});
try {
const getEmptyCart = await shopping_cart.findOne({ (...) });
if (getEmptyCart) {
await shopping_cart.update({ (...) });
}
ctx.body = data;
} catch (e) {
try {
const needsUpdatedQuantity = await shopping_cart.findOne({ (...) });
if (needsUpdatedQuantity) {
await shopping_cart.update({ (...) });
}
ctx.body = data;
} catch (e) {
try {
const needsNewCart = await shopping_cart.findOne({ (...) });
if (needsNewCart) {
await shopping_cart.create({ (...) });
}
} catch (e) {
ctx.status = 400;
ctx.body = e.message;
}
}
}
Это работает, но могу ли я использовать вложенный оператор try-catch, как описано выше?Есть ли другой способ, которым код может работать без ошибок при поиске в БД вместо try-catch?
Пожалуйста, дайте мне знать по комментарию или ответу, если у вас есть какая-либо дополнительная информация, которую я должен дополнить.
Спасибо.