اذهب إلى المحتوى
  • 0

الكشف عن خطأ لمسار Nextjs API مع Axios

عبد النور محمد

السؤال

أنا أستخدم المسارات التالية لدي تسجيل دخول وعندما تحدث مشكلة  أرجع 401 ونص الرسالة التي أود عرضها للمستخدمين.

Api: /api/v1/auth/signin.js

export default async (req, res) => {
const { name, password } = req.body;
const url = process.env.SH_API_BASEURL + 'auth/signin';
console.log(url);

try {
    const resp = await axios.patch(url, { name, password });
    return res.status(200).send(resp.data);
} catch (err) {
    const { response } = err;
    const status = response.status;
    const message = response.data.errors[0].message;
    console.log(`status: ${status}, message ${message}`);
    return res.status(status).send(message);
}
};

Pages /pages/auth/signin.js

const handleFormSubmit = async (formData, e) => {
    e.preventDefault();
    try {
        const res = await axios.post('/api/v1/auth/signin', formData);
        

        router.push('/secure/home');
    } catch (err) {
        console.log('pages auth in error');
        console.log(err);
        setSubmitError(true);
        console.log('sigin handle submit error');
        
    }
};

console.log(err) تعرض ه>ا الخطا

Error: Request failed with status code 401
at createError (createError.js:16)
at settle (settle.js:17)
at XMLHttpRequest.handleLoad (xhr.js:62)

كيف يمكنني الوصول إلى statuscode ونص الخطأ في كود الصفحات؟

رابط هذا التعليق
شارك على الشبكات الإجتماعية

Recommended Posts

  • 0

يمكن معرفة رمز الحالة للطلب ونص الخطأ من الغرض response داخل الخطأ err كالتالي

error.response.status // رمز الحالة
error.response.data // جسم الجواب

يصبح المثال كالتالي

const handleFormSubmit = async (formData, e) => {
    e.preventDefault();
    try {
        const res = await axios.post('/api/v1/auth/signin', formData);

        router.push('/secure/home');
    } catch (err) {
      	const code = err.response.status; // الرمز
      	const message = err.response.data; // جسم الطلب ويحوي الرسالة
      
      	if(code === 401) {
          // خطأ في التسجيل
        }
      
      	// خطأ آخر
        
    }
};

 

رابط هذا التعليق
شارك على الشبكات الإجتماعية

انضم إلى النقاش

يمكنك أن تنشر الآن وتسجل لاحقًا. إذا كان لديك حساب، فسجل الدخول الآن لتنشر باسم حسابك.

زائر
أجب على هذا السؤال...

×   لقد أضفت محتوى بخط أو تنسيق مختلف.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   جرى استعادة المحتوى السابق..   امسح المحرر

×   You cannot paste images directly. Upload or insert images from URL.

  • إعلانات

  • تابعنا على



×
×
  • أضف...