Я создаю микросервис, вызывая другой API внутри этого API. Другой API возвращает данные, но я продолжаю получать эту ошибку
Это ответ на платеж {success: true, json: 1} (узел: 31709)
UnhandledPromiseRejectionWarning: TypeError: Преобразование циклического
структура в JSON
в JSON.stringify ()
в stringify (/Users/greatness/microservice/order/node_modules/express/lib/response.js:1119:12)
на ServerResponse.json (/Users/alpha/setel/order/node_modules/express/lib/response.js:260:14)
на router.post (/Users/alpha/setel/order/src/routes/order.js:59:21)
в
at process._tickCallback (internal / process / next_tick.js: 189: 7) (узел: 31709) UnhandledPromiseRejectionWarning: необработанное обещание
отказ. Эта ошибка возникла из-за броска внутри асинхронного
функционировать без блока catch или отклоняя обещание, которое было
не обрабатывается с помощью .catch (). (код отклонения: 2)
router.post("/order", async (req, res) => {
let paymentResponse;
// Im using Mongoose
const order = new Order()
try {
// Call the payment API
paymentResponse = await axios.post('http://localhost:3002/api/v1/payment', {
order
})
} catch (err) {
res.status(500).json({
success: false,
message: err.message
})
}
console.log("This is payment Response", paymentResponse.data)
// Success change the order status to confirmed
if (paymentResponse.data.json === 0) {
order.status = "confirmed"
} else {
order.status = "declined"
}
order.save()
res.status(200).json({
success: true,
paymentResponse,
order
})
})
Другой просто возвращает нормальный JSON
router.post("/v1/payment", async (req, res) => {
try {
// If 0 confirmed if 1 declined
const randomResponse = Math.round(Math.random())
res.status(200).json({
success: true,
json: randomResponse
})
} catch (err) {
res.status(500).json({
success: false,
message: err.message
})
}
})
Что я могу сделать? Я продолжаю получать статус 500.
Привет.