Я новичок в nodejs. Я хочу выполнить несколько запросов в функции, которая зависит друг от друга.
pool.getConnection((err, connection) => {
let productDetailsQuery = "select * from products where id = ?";
connection.query(productDetailsQuery, [event.product_id], (error, products) => {
if (products.length) {
connection.query("select * from galleries where product_id = ?", [products[0].id], (err, galleries ) => {
products[0].customAttributes = galleries ;
});
connection.query("select * from custom_attributes where product_id = ?", [products[0].id], (err, custom_attributes) => {
products[0].customAttributes = custom_attributes;
});
connection.query("select * from sizes where product_id = ?", [products[0].id], (err, sizes ) => {
products[0].sizes= sizes;
});
.............................
//more queries to run here and to append to products result.
................................
console.log({
status: true,
message: "Product found.",
data: products
})
} else {
console.log({
status: false,
message: "Products is not found",
data: [
"Product is not found for id : " + event.product_id
]
})
}
});
})
Когда я консоль своих продуктов, он показывает только первый запрос ie результат. это не показывает результат внутреннего запроса ie. если я утешу внутренние запросы, я могу получить желаемый результат.
Пожалуйста, помогите мне добиться этого.
Спасибо в advacne.
Мой желаемый результат -
{
status:true,
message : "product found",
data : [{
"id" :12,
"product_name":"bat",
"galleries": [......],
"customAttributes":[.......',
"sizes":[..........]
}]
}
ПРИМЕЧАНИЕ: Я НЕ ХОЧУ ЗАПУСТИТЬ ЗАПРОСЫ В ЗВОНЕ ОДНОГО ДРУГОГО