Как сделать 2 разных GET запроса, если они принимают одинаковые значения?
У меня возникла одновременно глупая и непростая проблема. Мне нужно на одной странице сделать 2 разных GET запроса, которые принимают ID заказа. Проблема заключается в том, что при попадании запроса в роутер, первый по списку запрос выполняется 2 раза, однако мне нужно, чтобы при вызове второго запроса срабатывал соответственно другой (второй) запрос.
Ниже прилагаю код:
//OrderPage.js
useEffect(() =>{
getOneOrder(id.id).then(data => order.setOneOrder(data)).finally(setTimeout(stop, 1000))
getOneOrderInfo(id.id).then(data => order.setOneOrder(data)).finally(setTimeout(stop, 1000))
}, [])
------------
//orderAPI.js
export const getOneOrder = async (id) => {
const {data} = await $authHost.get('api/order/' + id)
return data
}
export const getOneOrderInfo = async (id) => {
const {data} = await $authHost.get('api/order/' + id)
return data
}
----------
//orderRouter.js
router.get('/:id', orderController.getOne)
router.get('/:id', orderController.getOneInfo)
------------
//orderController.js
async getOne (req, res, next){
try{
const {id} = req.params
const order = await Order.findOne({where: {id : id}})
return res.json(order)
} catch (e){
next(ApiError.badRequest(e.message))
}
}
async getOneInfo (req, res, next){
try{
const {id} = req.params
const orderInfo = await OrderDish.findAll({include: {
model: Dish
}, where: {orderId: id}})
return res(orderInfo)
} catch (e){
next(ApiError.badRequest(e.message))
}
}
Ответы (1 шт):
Автор решения: marchello
→ Ссылка
Спасибо @nörbörnën за наводку. Вот мой код, решивший проблемку:
//OrderPage.js
useEffect(() =>{
getOneOrderInfo(id.id).then(oneOrder => {
order.setOneOrder(oneOrder.order);
order.setDishes(oneOrder.orderInfo);
}).finally(setTimeout(stop, 1000))
}, [])
----------
//orderAPI.js
export const getOneOrderInfo = async (id) => {
const {data} = await $authHost.get('api/order/' + id)
return data
-----------
//orderRouter.js
router.get('/:id', orderController.getOneInfo)
-----------
//orderController.js
async getOneInfo (req, res, next){
try{
const {id} = req.params
const [order, orderInfo] = await Promise.all([
Order.findOne({where: {id : id}}),
OrderDish.findAll({
include: { model: Dish },
where: {orderId: id},
})
]);
return res.json({ order, orderInfo });
} catch (e){
next(ApiError.badRequest(e.message))
}
}