Mohammad Jawad Barati
Mohammad Jawad Barati
خواندن ۱ دقیقه·۴ سال پیش

کار با پکیج دوست داشتنی/نداشتنی axios

یخورده حالت کاربردی و بدون چهارچوب اینو مینویسم.
یخورده حالت کاربردی و بدون چهارچوب اینو مینویسم.

شما یه ریکوئست به اندپوینت یه سایتی میزنی و انتظار داری که status code ها رو توی response داشته باشی، مثل این کد:

const axios = require('axios').default.create({ baseURL: 'https://reqres.in' }); app.use('/endpoint', async (req, res, next) => { let response = await axios.get('/some/endpoint'); if (response.status === 404) res.status(404).json({ message: 'not found' }); else if (response.status === 200) res.status(200).json({ data: response.data }); })()

ولی مشکل اینه که اگه status code اون ریکوئستی که میزنی تو رنج ۴۰۰ تا ۵۰۰ باشه (یعنی ارور باشه) هیچ وقت if اجرا نمیشه. چرا؟ چونکه axios توی مواردی که status code بیشتر از ۴۰۰ باشه ارور رو throw میکنه. این یعنی باید try catch بنویسی و توی اون بیای ارور ها رو هندل بکنی. مثل این:

app.use('/endpoint', async (req, res, next) => { try { let response = await axios.get('/some/endpoint'); if (response.status === 200) res.json({ data: response.data }); } catch (error) { if (error.response.status === 404) res.status(404).json({ message: 'not found' }); else res.status(error.response.status).json({ message: 'some kind of error' }); }; });


axioshttp requestnode jsnpmjsexpressjs
برنانه نویس، مدرس، محقق. عاشق انیمه هستم و دنبال چالش ها جدید.
شاید از این پست‌ها خوشتان بیاید